From 85939c0b5c573767a3338c4ce92fddef096efbb7 Mon Sep 17 00:00:00 2001 From: Artemij Date: Fri, 8 May 2026 21:59:39 +1000 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D1=87=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.idea.Policlinica/.idea/avalonia.xml | 1 + Policlinica/App.axaml | 1 + Policlinica/App.axaml.cs | 2 +- Policlinica/DB/RecordRep.cs | 53 +++ Policlinica/Models/Record.cs | 2 + Policlinica/Policlinica.csproj | 1 + Policlinica/Program.cs | 9 + .../ViewModels/AdminWindowViewModel.cs | 11 +- .../ViewModels/AutorizationViewModel.cs | 1 + Policlinica/ViewModels/InfoViewModel.cs | 31 ++ Policlinica/ViewModels/Navigation.cs | 2 + .../ViewModels/RegistrationViewModel.cs | 2 +- Policlinica/ViewModels/StartViewModel.cs | 2 +- Policlinica/Views/AdminWindowView.axaml | 27 +- Policlinica/Views/AdminWindowView.axaml.cs | 2 +- Policlinica/Views/InfoWindow.axaml | 11 + Policlinica/Views/InfoWindow.axaml.cs | 13 + .../bin/Debug/net9.0/Policlinica.deps.json | 19 + Policlinica/bin/Debug/net9.0/Policlinica.dll | Bin 230912 -> 240640 bytes Policlinica/bin/Debug/net9.0/Policlinica.exe | Bin 156672 -> 156672 bytes Policlinica/bin/Debug/net9.0/Policlinica.pdb | Bin 35616 -> 39240 bytes .../net9.0/Avalonia/Resources.Inputs.cache | 2 +- .../obj/Debug/net9.0/Avalonia/references | 445 +++++++++--------- .../obj/Debug/net9.0/Avalonia/resources | Bin 183372 -> 184301 bytes .../Debug/net9.0/Policlinica.AssemblyInfo.cs | 2 +- .../Policlinica.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 17 +- .../obj/Debug/net9.0/Policlinica.assets.cache | Bin 47707 -> 48409 bytes ...Policlinica.csproj.AssemblyReference.cache | Bin 30784 -> 31267 bytes ...Policlinica.csproj.CoreCompileInputs.cache | 2 +- .../Policlinica.csproj.FileListAbsolute.txt | 114 +++++ Policlinica/obj/Debug/net9.0/Policlinica.dll | Bin 230912 -> 240640 bytes .../net9.0/Policlinica.genruntimeconfig.cache | 2 +- Policlinica/obj/Debug/net9.0/Policlinica.pdb | Bin 35616 -> 39240 bytes .../Debug/net9.0/Policlinica.sourcelink.json | 2 +- Policlinica/obj/Debug/net9.0/apphost.exe | Bin 156672 -> 156672 bytes .../obj/Debug/net9.0/ref/Policlinica.dll | Bin 13312 -> 14848 bytes .../obj/Debug/net9.0/refint/Policlinica.dll | Bin 13312 -> 14848 bytes .../obj/Policlinica.csproj.nuget.dgspec.json | 36 +- .../obj/Policlinica.csproj.nuget.g.props | 8 +- Policlinica/obj/project.assets.json | 70 ++- Policlinica/obj/project.nuget.cache | 131 +++--- Policlinica/obj/project.packagespec.json | 2 +- .../obj/rider.project.model.nuget.info | 2 +- Policlinica/obj/rider.project.restore.info | 2 +- 45 files changed, 692 insertions(+), 337 deletions(-) create mode 100644 Policlinica/DB/RecordRep.cs create mode 100644 Policlinica/ViewModels/InfoViewModel.cs create mode 100644 Policlinica/Views/InfoWindow.axaml create mode 100644 Policlinica/Views/InfoWindow.axaml.cs 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"> - - - - - - - - - - - + + + + + + + + + + + -