From 3b994a58d517d71e199fc918e08cdc8cef5ad3e0 Mon Sep 17 00:00:00 2001 From: student Date: Thu, 14 May 2026 14:23:18 +1000 Subject: [PATCH] Service --- .idea/.idea.Policlinica/.idea/avalonia.xml | 1 + Policlinica.sln.DotSettings.user | 6 +- Policlinica/DB/DoctorRepository.cs | 9 +- Policlinica/DB/ServiceRepository.cs | 32 +- Policlinica/Models/Chuvak.cs | 8 + Policlinica/Models/CurrentUser.cs | 6 + Policlinica/Program.cs | 14 +- ...inWindowViewModel.cs => AdminViewModel.cs} | 8 +- .../ViewModels/AutorizationViewModel.cs | 29 +- Policlinica/ViewModels/DoctorViewModel.cs | 24 +- Policlinica/ViewModels/ServiceViewModel.cs | 23 +- ...{AdminWindowView.axaml => AdminView.axaml} | 4 +- ...viceWindow.axaml.cs => AdminView.axaml.cs} | 4 +- .../{DoctoraWindow.axaml => DoctorView.axaml} | 9 +- ...oraWindow.axaml.cs => DoctorView.axaml.cs} | 4 +- Policlinica/Views/ServiceView.axaml | 28 ++ ...ndowView.axaml.cs => ServiceView.axaml.cs} | 4 +- Policlinica/Views/ServiceWindow.axaml | 11 - .../net9.0/Avalonia.Controls.DataGrid.dll | Bin Policlinica/bin/Debug/net9.0/Policlinica | Bin 0 -> 75368 bytes .../bin/Debug/net9.0/Policlinica.deps.json | 37 +- Policlinica/bin/Debug/net9.0/Policlinica.dll | Bin 252928 -> 258560 bytes Policlinica/bin/Debug/net9.0/Policlinica.pdb | Bin 46280 -> 47136 bytes .../net9.0/Avalonia/Resources.Inputs.cache | 2 +- .../obj/Debug/net9.0/Avalonia/references | 446 +++++++++--------- .../obj/Debug/net9.0/Avalonia/resources | Bin 186269 -> 187163 bytes .../Debug/net9.0/Policlinica.AssemblyInfo.cs | 2 +- .../Policlinica.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 20 +- .../obj/Debug/net9.0/Policlinica.assets.cache | Bin 48409 -> 46691 bytes ...Policlinica.csproj.AssemblyReference.cache | Bin 31267 -> 30510 bytes ...Policlinica.csproj.CoreCompileInputs.cache | 2 +- .../Policlinica.csproj.FileListAbsolute.txt | 228 ++++----- Policlinica/obj/Debug/net9.0/Policlinica.dll | Bin 252928 -> 258560 bytes .../net9.0/Policlinica.genruntimeconfig.cache | 2 +- Policlinica/obj/Debug/net9.0/Policlinica.pdb | Bin 46280 -> 47136 bytes .../Debug/net9.0/Policlinica.sourcelink.json | 2 +- Policlinica/obj/Debug/net9.0/apphost | Bin 0 -> 75368 bytes .../obj/Debug/net9.0/ref/Policlinica.dll | Bin 16384 -> 16896 bytes .../obj/Debug/net9.0/refint/Policlinica.dll | Bin 16384 -> 16896 bytes .../obj/Policlinica.csproj.nuget.dgspec.json | 37 +- .../obj/Policlinica.csproj.nuget.g.props | 20 +- .../obj/Policlinica.csproj.nuget.g.targets | 20 +- Policlinica/obj/project.assets.json | 35 +- Policlinica/obj/project.nuget.cache | 132 +++--- Policlinica/obj/project.packagespec.json | 2 +- .../obj/rider.project.model.nuget.info | 2 +- Policlinica/obj/rider.project.restore.info | 2 +- 48 files changed, 616 insertions(+), 601 deletions(-) create mode 100644 Policlinica/Models/Chuvak.cs create mode 100644 Policlinica/Models/CurrentUser.cs rename Policlinica/ViewModels/{AdminWindowViewModel.cs => AdminViewModel.cs} (79%) rename Policlinica/Views/{AdminWindowView.axaml => AdminView.axaml} (94%) rename Policlinica/Views/{ServiceWindow.axaml.cs => AdminView.axaml.cs} (65%) rename Policlinica/Views/{DoctoraWindow.axaml => DoctorView.axaml} (81%) rename Policlinica/Views/{DoctoraWindow.axaml.cs => DoctorView.axaml.cs} (65%) create mode 100644 Policlinica/Views/ServiceView.axaml rename Policlinica/Views/{AdminWindowView.axaml.cs => ServiceView.axaml.cs} (64%) delete mode 100644 Policlinica/Views/ServiceWindow.axaml mode change 100644 => 100755 Policlinica/bin/Debug/net9.0/Avalonia.Controls.DataGrid.dll create mode 100755 Policlinica/bin/Debug/net9.0/Policlinica create mode 100755 Policlinica/obj/Debug/net9.0/apphost diff --git a/.idea/.idea.Policlinica/.idea/avalonia.xml b/.idea/.idea.Policlinica/.idea/avalonia.xml index 713deb4..0161e48 100644 --- a/.idea/.idea.Policlinica/.idea/avalonia.xml +++ b/.idea/.idea.Policlinica/.idea/avalonia.xml @@ -14,6 +14,7 @@ + diff --git a/Policlinica.sln.DotSettings.user b/Policlinica.sln.DotSettings.user index 7ba50c0..6f204ae 100644 --- a/Policlinica.sln.DotSettings.user +++ b/Policlinica.sln.DotSettings.user @@ -1,4 +1,8 @@  + ForceIncluded ForceIncluded ForceIncluded - ForceIncluded \ No newline at end of file + ForceIncluded + ForceIncluded + ForceIncluded + ForceIncluded \ No newline at end of file diff --git a/Policlinica/DB/DoctorRepository.cs b/Policlinica/DB/DoctorRepository.cs index 6bc58c1..9c76411 100644 --- a/Policlinica/DB/DoctorRepository.cs +++ b/Policlinica/DB/DoctorRepository.cs @@ -15,10 +15,9 @@ public class DoctorRepository:BaseRep public List GetDoctorsByTest() { List result = new List(); - string sql = "select * from doctors"; + string sql = "select * from doctors"; try { - connection.Open(); using (var mc = new MySqlCommand(sql, connection)) using (var dr = mc.ExecuteReader()) { @@ -33,12 +32,6 @@ public class DoctorRepository:BaseRep }); } } - - connection.Close(); - } - catch (MySqlException ex) - { - Console.WriteLine(ex); } catch (Exception e) { diff --git a/Policlinica/DB/ServiceRepository.cs b/Policlinica/DB/ServiceRepository.cs index 02b67b1..ab7edc9 100644 --- a/Policlinica/DB/ServiceRepository.cs +++ b/Policlinica/DB/ServiceRepository.cs @@ -18,7 +18,6 @@ public class ServiceRepository : BaseRep string sql = "select * from services"; try { - connection.Open(); using (var mc = new MySqlCommand(sql, connection)) using (var dr = mc.ExecuteReader()) { @@ -33,8 +32,6 @@ public class ServiceRepository : BaseRep }); } } - - connection.Close(); } catch (MySqlException ex) { @@ -54,23 +51,25 @@ public class ServiceRepository : BaseRep string sql = "select * from services where doctor_id =@id"; try { - connection.Open(); using (var mc = new MySqlCommand(sql, connection)) - using (var dr = mc.ExecuteReader()) { - while (dr.Read()) + mc.Parameters.AddWithValue("@id", id); + using (var dr = mc.ExecuteReader()) { - s.Add(new Service() + while (dr.Read()) { - Id = dr.GetInt32("id"), - DoctorId = dr.GetInt32("doctor_id"), - ServiceName = dr.GetString("service_name"), - Price = dr.GetDecimal("price"), - }); + s.Add(new Service() + { + Id = dr.GetInt32("id"), + DoctorId = dr.GetInt32("doctor_id"), + ServiceName = dr.GetString("service_name"), + Price = dr.GetDecimal("price"), + }); + } } } - - connection.Close(); + + } catch (MySqlException ex) { @@ -83,4 +82,9 @@ public class ServiceRepository : BaseRep return s; } + public void Dispose() + { + base.Dispose(); + CloseConnection(); + } } \ No newline at end of file diff --git a/Policlinica/Models/Chuvak.cs b/Policlinica/Models/Chuvak.cs new file mode 100644 index 0000000..fbd2512 --- /dev/null +++ b/Policlinica/Models/Chuvak.cs @@ -0,0 +1,8 @@ +namespace Policlinica.DB; + +public static class Chuvak +{ + public static string name { get; set; } + + public static string surname { get; set; } +} \ No newline at end of file diff --git a/Policlinica/Models/CurrentUser.cs b/Policlinica/Models/CurrentUser.cs new file mode 100644 index 0000000..2438602 --- /dev/null +++ b/Policlinica/Models/CurrentUser.cs @@ -0,0 +1,6 @@ +namespace Policlinica.DB; + +public static class CurrentUser +{ + public static string login { get; set; } +} \ No newline at end of file diff --git a/Policlinica/Program.cs b/Policlinica/Program.cs index fc637f4..6006be2 100644 --- a/Policlinica/Program.cs +++ b/Policlinica/Program.cs @@ -32,8 +32,8 @@ sealed class Program s.AddTransient(); s.AddTransient(); - s.AddTransient(); - s.AddTransient(); + s.AddTransient(); + s.AddTransient(); s.AddTransient(); s.AddTransient(); @@ -44,10 +44,10 @@ sealed class Program s.AddTransient(); s.AddTransient(); - s.AddTransient(); + s.AddTransient(); s.AddTransient(); - s.AddTransient(); + s.AddTransient(); s.AddTransient(); //Репозитории @@ -60,6 +60,12 @@ sealed class Program s.AddTransient(); s.AddSingleton(); + + + + s.AddTransient(); + + s.AddTransient(); }). Build(); BuildAvaloniaApp(host.Services) diff --git a/Policlinica/ViewModels/AdminWindowViewModel.cs b/Policlinica/ViewModels/AdminViewModel.cs similarity index 79% rename from Policlinica/ViewModels/AdminWindowViewModel.cs rename to Policlinica/ViewModels/AdminViewModel.cs index ad7cd00..d24bcd2 100644 --- a/Policlinica/ViewModels/AdminWindowViewModel.cs +++ b/Policlinica/ViewModels/AdminViewModel.cs @@ -10,15 +10,17 @@ using Policlinica.Views; namespace Policlinica.ViewModels; -public partial class AdminWindowViewModel : ViewModelBase +public partial class AdminViewModel : ViewModelBase { private readonly Navigation _navigation; private readonly IServiceProvider _provider; private readonly RecordRep _recordRep; + [ObservableProperty] string _login; [ObservableProperty] ObservableCollection _recordsList = new(); [ObservableProperty] private Record _selectedRecord; + - public AdminWindowViewModel( Navigation navigation, IServiceProvider provider, RecordRep recordRep) + public AdminViewModel( Navigation navigation, IServiceProvider provider, RecordRep recordRep) { _navigation = navigation; @@ -38,7 +40,7 @@ public partial class AdminWindowViewModel : ViewModelBase [RelayCommand] void GoService() { - var vm = _provider.GetRequiredService(); + var vm = ActivatorUtilities.CreateInstance(_provider); _navigation.Navigate(vm); } } \ No newline at end of file diff --git a/Policlinica/ViewModels/AutorizationViewModel.cs b/Policlinica/ViewModels/AutorizationViewModel.cs index f196703..f6bc541 100644 --- a/Policlinica/ViewModels/AutorizationViewModel.cs +++ b/Policlinica/ViewModels/AutorizationViewModel.cs @@ -22,21 +22,7 @@ public partial class AutorizationViewModel : ViewModelBase _provider = provider; _navigation = navigation; } -/* - [RelayCommand] - public void StartTest() - { - var vm = ActivatorUtilities.CreateInstance( - _provider, - Login, - Password); - var win = _provider.GetRequiredService(); - //vm.SetClose(win.Close); - win.DataContext = vm; - win.Show(); - // close(); - } -*/ + [RelayCommand] public void Conti() { @@ -52,16 +38,11 @@ public partial class AutorizationViewModel : ViewModelBase Eror = "Неверный логин или пароль"; return; } - - - var vm = _provider.GetRequiredService(); - // var win = _provider.GetRequiredService(); - _navigation.Navigate(vm); - //vm.SetClose(win.Close); - // win.DataContext = vm; - //win.Show(); - //Сlose(); + CurrentUser.login = SpUser[0].Name; + + var vm = ActivatorUtilities.CreateInstance(_provider); + _navigation.Navigate(vm); } diff --git a/Policlinica/ViewModels/DoctorViewModel.cs b/Policlinica/ViewModels/DoctorViewModel.cs index 64916a3..3b70db4 100644 --- a/Policlinica/ViewModels/DoctorViewModel.cs +++ b/Policlinica/ViewModels/DoctorViewModel.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; @@ -12,27 +13,34 @@ public partial class DoctorViewModel : ViewModelBase private readonly IServiceProvider _provider; private readonly Navigation _navigation; - [ObservableProperty] string username; - [ObservableProperty] string name; - [ObservableProperty] List _doctorList; - [ObservableProperty] Doctor selectedDoctor; - // [ObservableProperty] string g; + + [ObservableProperty] string _surname; + [ObservableProperty] string _name; + [ObservableProperty] ObservableCollection _doctorList; + [ObservableProperty] Doctor _selectedDoctor; public DoctorViewModel(IServiceProvider provider, DoctorRepository repository, Navigation navigation) { _provider = provider; - _doctorList = repository.GetDoctorsByTest(); + _doctorList = new ObservableCollection(repository.GetDoctorsByTest()); _navigation = navigation; + + + Chuvak.name = Name; + Chuvak.surname = Surname; } [RelayCommand] public void StartTest() { + if (Name == null) + return; + if (Surname == null) + return; if (SelectedDoctor == null) return; - - var vm = _provider.GetRequiredService(); + var vm = ActivatorUtilities.CreateInstance(_provider, SelectedDoctor); _navigation.Navigate(vm); } diff --git a/Policlinica/ViewModels/ServiceViewModel.cs b/Policlinica/ViewModels/ServiceViewModel.cs index bd900f0..3580281 100644 --- a/Policlinica/ViewModels/ServiceViewModel.cs +++ b/Policlinica/ViewModels/ServiceViewModel.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using Avalonia.Animation.Easings; using CommunityToolkit.Mvvm.ComponentModel; @@ -15,8 +16,11 @@ public partial class ServiceViewModel : ViewModelBase private readonly IServiceProvider _provider; private readonly Navigation _navigation; - [ObservableProperty] List _services; ServiceRepository _serviceRepository; + + [ObservableProperty] string surname; + [ObservableProperty] string name; + [ObservableProperty] ObservableCollection _services; [ObservableProperty] string _login; [ObservableProperty] Doctor _selectedDoctor; @@ -27,7 +31,9 @@ public partial class ServiceViewModel : ViewModelBase _navigation = navigation; _selectedDoctor = selectedDoctor; _serviceRepository = repository; - //Services = repository.GetServicesByDoctors(selectedDoctor.Id).Select(service => new ServiceSelected(service)).ToList(); + Services = new ObservableCollection(repository.GetServicesByDoctors(selectedDoctor.Id).Select(service => new ServiceSelected(service)).ToList()); + + //Console.WriteLine(CurrentUser.login); } @@ -46,16 +52,9 @@ public partial class ServiceViewModel : ViewModelBase } } - var vm = ActivatorUtilities.CreateInstance( - _provider, - SelectedDoctor, - Login, - Services); - var win = _provider.GetRequiredService(); - // vm.SetClose(win.Close); - win.DataContext = vm; - // win.Show(); - // close(); + var vm = ActivatorUtilities.CreateInstance(_provider, SelectedDoctor); + _navigation.Navigate(vm); + } } diff --git a/Policlinica/Views/AdminWindowView.axaml b/Policlinica/Views/AdminView.axaml similarity index 94% rename from Policlinica/Views/AdminWindowView.axaml rename to Policlinica/Views/AdminView.axaml index 5fb7dd8..b1cf9f0 100644 --- a/Policlinica/Views/AdminWindowView.axaml +++ b/Policlinica/Views/AdminView.axaml @@ -4,8 +4,8 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:viewModels="clr-namespace:Policlinica.ViewModels" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Policlinica.Views.AdminWindowView" - x:DataType="viewModels:AdminWindowViewModel"> + x:Class="Policlinica.Views.AdminView" + x:DataType="viewModels:AdminViewModel"> diff --git a/Policlinica/Views/ServiceWindow.axaml.cs b/Policlinica/Views/AdminView.axaml.cs similarity index 65% rename from Policlinica/Views/ServiceWindow.axaml.cs rename to Policlinica/Views/AdminView.axaml.cs index d68f8b9..44b7f26 100644 --- a/Policlinica/Views/ServiceWindow.axaml.cs +++ b/Policlinica/Views/AdminView.axaml.cs @@ -4,9 +4,9 @@ using Avalonia.Markup.Xaml; namespace Policlinica.Views; -public partial class ServiceWindow : UserControl +public partial class AdminView : UserControl { - public ServiceWindow() + public AdminView() { InitializeComponent(); } diff --git a/Policlinica/Views/DoctoraWindow.axaml b/Policlinica/Views/DoctorView.axaml similarity index 81% rename from Policlinica/Views/DoctoraWindow.axaml rename to Policlinica/Views/DoctorView.axaml index 0981787..b218530 100644 --- a/Policlinica/Views/DoctoraWindow.axaml +++ b/Policlinica/Views/DoctorView.axaml @@ -4,7 +4,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:vm="using:Policlinica.ViewModels" mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450" - x:Class="Policlinica.Views.DoctoraWindow" + x:Class="Policlinica.Views.DoctorView" x:DataType="vm:DoctorViewModel"> @@ -12,13 +12,12 @@ - + - - + + - diff --git a/Policlinica/Views/DoctoraWindow.axaml.cs b/Policlinica/Views/DoctorView.axaml.cs similarity index 65% rename from Policlinica/Views/DoctoraWindow.axaml.cs rename to Policlinica/Views/DoctorView.axaml.cs index 3240b75..9b7f006 100644 --- a/Policlinica/Views/DoctoraWindow.axaml.cs +++ b/Policlinica/Views/DoctorView.axaml.cs @@ -4,9 +4,9 @@ using Avalonia.Markup.Xaml; namespace Policlinica.Views; -public partial class DoctoraWindow : UserControl +public partial class DoctorView : UserControl { - public DoctoraWindow() + public DoctorView() { InitializeComponent(); } diff --git a/Policlinica/Views/ServiceView.axaml b/Policlinica/Views/ServiceView.axaml new file mode 100644 index 0000000..74d7abb --- /dev/null +++ b/Policlinica/Views/ServiceView.axaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + +