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 @@ + + + + + + + + + + + + + + + + + +