diff --git a/.idea/.idea.Policlinica/.idea/avalonia.xml b/.idea/.idea.Policlinica/.idea/avalonia.xml index 4ea58a4..baa64ed 100644 --- a/.idea/.idea.Policlinica/.idea/avalonia.xml +++ b/.idea/.idea.Policlinica/.idea/avalonia.xml @@ -7,6 +7,7 @@ + diff --git a/Policlinica/App.axaml b/Policlinica/App.axaml index a9112a7..62ecd0b 100644 --- a/Policlinica/App.axaml +++ b/Policlinica/App.axaml @@ -11,5 +11,6 @@ + \ No newline at end of file diff --git a/Policlinica/App.axaml.cs b/Policlinica/App.axaml.cs index ed8e7db..2808868 100644 --- a/Policlinica/App.axaml.cs +++ b/Policlinica/App.axaml.cs @@ -14,7 +14,7 @@ public partial class App : Application { private readonly IServiceProvider _serviceProvider; - public App( ) + public App() { } diff --git a/Policlinica/DB/RecordRep.cs b/Policlinica/DB/RecordRep.cs new file mode 100644 index 0000000..b1ee898 --- /dev/null +++ b/Policlinica/DB/RecordRep.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using Microsoft.Extensions.Options; +using MySqlConnector; + +namespace Policlinica.DB; + +public class RecordRep:BaseRep +{ + public RecordRep(IOptions dataBaseConnection) : base(dataBaseConnection) + { + OpenConnection(); + } + + public List GetRecord() + { + List recordsList = new(); + + string sql = @"select r.id,r.client_name, r.client_surname,r.doctor_id,user_id,r.total_amount,r.record_date,d.title,u.name + from records r + join doctors d on r.doctor_id = d.id + join users u on r.user_id = u.id "; + try + { + using (var mc = new MySqlCommand(sql, connection)) + { + using (var reader = mc.ExecuteReader()) + { + while (reader.Read()) + { + recordsList.Add(new Record() + { + Id = reader.GetInt32("id"), + ClientName = reader.GetString("client_name"), + ClientSurname = reader.GetString("client_surname"), + DoctorId = reader.GetInt32("doctor_id"), + UserId = reader.GetInt32("user_id"), + TotalAmount = reader.GetInt32("total_amount"), + RecordDate = reader.GetDateTime("record_date"), + Name = reader.GetString("name"), + Title = reader.GetString("title") + }); + } + } + } + } + catch (Exception e) + { + Console.WriteLine(e); + } + return recordsList; + } +} \ No newline at end of file diff --git a/Policlinica/Models/Record.cs b/Policlinica/Models/Record.cs index 0f48705..a92dddb 100644 --- a/Policlinica/Models/Record.cs +++ b/Policlinica/Models/Record.cs @@ -18,4 +18,6 @@ public class Record public DateTime RecordDate { get; set; } + public string Title { get; set; } + public string Name { get; set; } } \ No newline at end of file diff --git a/Policlinica/Policlinica.csproj b/Policlinica/Policlinica.csproj index b02da28..d9c49eb 100644 --- a/Policlinica/Policlinica.csproj +++ b/Policlinica/Policlinica.csproj @@ -13,6 +13,7 @@ + diff --git a/Policlinica/Program.cs b/Policlinica/Program.cs index 5f81dc7..191e2f3 100644 --- a/Policlinica/Program.cs +++ b/Policlinica/Program.cs @@ -43,16 +43,25 @@ sealed class Program s.AddTransient(); s.AddTransient(); + + s.AddTransient(); s.AddSingleton(); s.AddTransient(); s.AddTransient(); + s.AddTransient(); }). Build(); BuildAvaloniaApp(host.Services) .StartWithClassicDesktopLifetime(args); } + + public static AppBuilder BuildAvaloniaApp() + => AppBuilder.Configure() + .UsePlatformDetect() + .WithInterFont() + .LogToTrace(); // Avalonia configuration, don't remove; also used by visual designer. public static AppBuilder BuildAvaloniaApp(IServiceProvider serviceProvider) diff --git a/Policlinica/ViewModels/AdminWindowViewModel.cs b/Policlinica/ViewModels/AdminWindowViewModel.cs index 7bb0b9e..61b8672 100644 --- a/Policlinica/ViewModels/AdminWindowViewModel.cs +++ b/Policlinica/ViewModels/AdminWindowViewModel.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.DependencyInjection; @@ -13,15 +14,21 @@ public partial class AdminWindowViewModel : ViewModelBase private readonly IServiceProvider _serviceProvider; private readonly Navigation _navigation; private readonly IServiceProvider _provider; + private readonly RecordRep _recordRep; [ObservableProperty] private string _password; [ObservableProperty] private string _login; [ObservableProperty] public string _eror; + [ObservableProperty] ObservableCollection _recordsList = new(); + [ObservableProperty] private Record _selectedRecord; - public AdminWindowViewModel(IServiceProvider serviceProvider, Navigation navigation, IServiceProvider provider) + public AdminWindowViewModel(IServiceProvider serviceProvider, Navigation navigation, IServiceProvider provider, RecordRep recordRep) { _serviceProvider = serviceProvider; _navigation = navigation; _provider = provider; - + _recordRep = recordRep; + + RecordsList = new ObservableCollection(recordRep.GetRecord()); } + } \ No newline at end of file diff --git a/Policlinica/ViewModels/AutorizationViewModel.cs b/Policlinica/ViewModels/AutorizationViewModel.cs index 0e83c96..f196703 100644 --- a/Policlinica/ViewModels/AutorizationViewModel.cs +++ b/Policlinica/ViewModels/AutorizationViewModel.cs @@ -61,6 +61,7 @@ public partial class AutorizationViewModel : ViewModelBase // win.DataContext = vm; //win.Show(); //Сlose(); + } diff --git a/Policlinica/ViewModels/InfoViewModel.cs b/Policlinica/ViewModels/InfoViewModel.cs new file mode 100644 index 0000000..328bd11 --- /dev/null +++ b/Policlinica/ViewModels/InfoViewModel.cs @@ -0,0 +1,31 @@ +using System; +using CommunityToolkit.Mvvm.ComponentModel; +using Microsoft.Extensions.DependencyInjection; + +namespace Policlinica.ViewModels; + +public partial class InfoViewModel : ViewModelBase + + { + private readonly Navigation _navigation1; + [ObservableProperty] private ViewModelBase _currentPage1; + + public InfoViewModel(IServiceProvider sv1, Navigation navigation1) + { + _navigation1 = navigation1; + //_navigation1.SetCurrentView(this); + _navigation1.Navigate(sv1.GetRequiredService()); + } + + Action closeAction; + + public void SetClose(Action closeAction) + { + this.closeAction = closeAction; + } + + public void Close() + { + this.closeAction?.Invoke(); + } + } diff --git a/Policlinica/ViewModels/Navigation.cs b/Policlinica/ViewModels/Navigation.cs index 9fd69ad..cd73f1a 100644 --- a/Policlinica/ViewModels/Navigation.cs +++ b/Policlinica/ViewModels/Navigation.cs @@ -18,4 +18,6 @@ public class Navigation { this.startViewModel.Close(); } + + } \ No newline at end of file diff --git a/Policlinica/ViewModels/RegistrationViewModel.cs b/Policlinica/ViewModels/RegistrationViewModel.cs index 00f6417..89b8379 100644 --- a/Policlinica/ViewModels/RegistrationViewModel.cs +++ b/Policlinica/ViewModels/RegistrationViewModel.cs @@ -62,7 +62,7 @@ public partial class RegistrationViewModel : ViewModelBase //win.DataContext = vm; //win.Show(); //_navigation.Close(); - var vm = _serviceProvider.GetRequiredService(); + var vm = _serviceProvider.GetRequiredService(); _navigation.Navigate(vm); } } diff --git a/Policlinica/ViewModels/StartViewModel.cs b/Policlinica/ViewModels/StartViewModel.cs index e5b168b..ae45b78 100644 --- a/Policlinica/ViewModels/StartViewModel.cs +++ b/Policlinica/ViewModels/StartViewModel.cs @@ -12,7 +12,7 @@ public partial class StartViewModel:ViewModelBase public StartViewModel(IServiceProvider sv, Navigation navigation) { _navigation = navigation; - _navigation.SetCurrentView(this); + _navigation.SetCurrentView(this); _navigation.Navigate(sv.GetRequiredService()); } diff --git a/Policlinica/Views/AdminWindowView.axaml b/Policlinica/Views/AdminWindowView.axaml index 8b8cc01..00cd9ad 100644 --- a/Policlinica/Views/AdminWindowView.axaml +++ b/Policlinica/Views/AdminWindowView.axaml @@ -8,19 +8,20 @@ x:DataType="viewModels:AdminWindowViewModel"> - - - - - - - - - - - + + + + + + + + + + + -