diff --git a/AutoCat/App.axaml.cs b/AutoCat/App.axaml.cs index 97e0876..45ae2df 100644 --- a/AutoCat/App.axaml.cs +++ b/AutoCat/App.axaml.cs @@ -22,10 +22,11 @@ public class App : Application services.AddSingleton(); // ViewModels - services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); // Windows services.AddWindowFactory(); diff --git a/AutoCat/Pages/HistoryPage.axaml b/AutoCat/Pages/HistoryPage.axaml index 2cdae51..4e11d11 100644 --- a/AutoCat/Pages/HistoryPage.axaml +++ b/AutoCat/Pages/HistoryPage.axaml @@ -19,6 +19,7 @@ + diff --git a/AutoCat/Pages/SearchPage.axaml b/AutoCat/Pages/SearchPage.axaml new file mode 100644 index 0000000..703edc3 --- /dev/null +++ b/AutoCat/Pages/SearchPage.axaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + diff --git a/AutoCat/Pages/SearchPage.axaml.cs b/AutoCat/Pages/SearchPage.axaml.cs new file mode 100644 index 0000000..a585ad9 --- /dev/null +++ b/AutoCat/Pages/SearchPage.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace AutoCat.Pages; + +public partial class SearchPage : UserControl +{ + public SearchPage() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/AutoCat/ViewModels/HistoryViewModel.cs b/AutoCat/ViewModels/HistoryViewModel.cs index 75b59bf..f9b8317 100644 --- a/AutoCat/ViewModels/HistoryViewModel.cs +++ b/AutoCat/ViewModels/HistoryViewModel.cs @@ -1,43 +1,12 @@ -using System; -using System.Collections.ObjectModel; +using System.Threading.Tasks; using AutoCatCore.Model; -using AutoCatCore.Services.Api; -using DynamicData; namespace AutoCat.ViewModels; public class HistoryViewModel: ViewModelBase { - #region Dependencies - - private readonly IApiService _apiService; - - #endregion - - #region Properties - - public ObservableCollection Vehicles { get; set; } - - #endregion - - public HistoryViewModel(IApiService apiService) + public async Task AddVehicle(Vehicle vehicle) { - _apiService = apiService; - Vehicles = new ObservableCollection(); - LoadVehicles(); - } - - private async void LoadVehicles() - { - try - { - var pagedResponse = await _apiService.GetVehicles(); - Vehicles.Clear(); - Vehicles.AddRange(pagedResponse.Items); - } - catch (Exception ex) - { - Console.WriteLine($"Error: {ex.Message}"); - } + } } \ No newline at end of file diff --git a/AutoCat/ViewModels/SearchViewModel.cs b/AutoCat/ViewModels/SearchViewModel.cs new file mode 100644 index 0000000..ce50d49 --- /dev/null +++ b/AutoCat/ViewModels/SearchViewModel.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.ObjectModel; +using AutoCatCore.Model; +using AutoCatCore.Services.Api; +using DynamicData; + +namespace AutoCat.ViewModels; + +public class SearchViewModel: ViewModelBase +{ + #region Dependencies + + private readonly IApiService _apiService; + + #endregion + + #region Properties + + public ObservableCollection Vehicles { get; set; } + + #endregion + + public SearchViewModel(IApiService apiService) + { + _apiService = apiService; + Vehicles = new ObservableCollection(); + LoadVehicles(); + } + + private async void LoadVehicles() + { + try + { + var pagedResponse = await _apiService.GetVehicles(); + Vehicles.Clear(); + Vehicles.AddRange(pagedResponse.Items); + } + catch (Exception ex) + { + Console.WriteLine($"Error: {ex.Message}"); + } + } +} \ No newline at end of file diff --git a/AutoCat/Windows/MainWindow.axaml.cs b/AutoCat/Windows/MainWindow.axaml.cs index 91401e9..bf27da2 100644 --- a/AutoCat/Windows/MainWindow.axaml.cs +++ b/AutoCat/Windows/MainWindow.axaml.cs @@ -1,7 +1,9 @@ using System; using System.Linq; +using System.Threading.Tasks; using AutoCat.Pages; using AutoCat.ViewModels; +using AutoCatCore.Model; using Avalonia.Controls; using FluentAvalonia.UI.Controls; @@ -11,6 +13,7 @@ public partial class MainWindow : Window { private readonly SettingsPage _settingsPage = new SettingsPage(); private readonly HistoryPage _historyPage = new HistoryPage(); + private readonly SearchPage _searchPage = new SearchPage(); public MainWindow() { @@ -39,14 +42,12 @@ public partial class MainWindow : Window } else if (args.SelectedItem is NavigationViewItem item) { - switch (item.Tag) + NavView.Content = item.Tag switch { - case "History": - break; - case "Search": - NavView.Content = _historyPage; - break; - } + "History" => _historyPage, + "Search" => _searchPage, + _ => NavView.Content + }; } } @@ -65,10 +66,14 @@ public partial class MainWindow : Window if (dialogContent.DataContext is CheckNumberViewModel vm) { - vm.AutoCloseEvent += (_, _) => + vm.AutoCloseEvent += async (_, _) => { dialog.Hide(); - Console.WriteLine($"Checked number: {vm.Vehicle?.Number}"); + if (_historyPage.DataContext is HistoryViewModel hvm && vm.Vehicle != null) + { + await hvm.AddVehicle(vm.Vehicle); + NavView.Content = _historyPage; + } }; }