diff --git a/Policlinica/DB/UserRepository.cs b/Policlinica/DB/UserRepository.cs index 2f3395c..5da3ce8 100644 --- a/Policlinica/DB/UserRepository.cs +++ b/Policlinica/DB/UserRepository.cs @@ -40,7 +40,6 @@ public class UserRepository:BaseRep string sql = "select * from users"; try { - connection.Open(); using (var mc = new MySqlCommand(sql, connection)) using (var dr = mc.ExecuteReader()) { @@ -103,9 +102,38 @@ public class UserRepository:BaseRep public void Dispose() { - base.Dispose(); CloseConnection(); + base.Dispose(); } + + + public List CheckLogin(string name) + { + List us = new List(); + string sql = @"select * from `users` where `Name` = @name"; + try + { + using (var mc = new MySqlCommand(sql, connection)) + { + mc.Parameters.AddWithValue("@name", name); + var reader = mc.ExecuteReader(); + while (reader.Read()) + { + us.Add(new User() + { + Id = reader.GetInt32("id"), + Name = reader.GetString("name"), + }); + } + } + } + catch (Exception e) + { + Console.WriteLine(e); + } + + return us; + } } \ No newline at end of file diff --git a/Policlinica/ViewModels/AdminWindowViewModel.cs b/Policlinica/ViewModels/AdminWindowViewModel.cs index 94a737a..45fc0be 100644 --- a/Policlinica/ViewModels/AdminWindowViewModel.cs +++ b/Policlinica/ViewModels/AdminWindowViewModel.cs @@ -1,6 +1,6 @@ namespace Policlinica.ViewModels; -public class AdminWindowViewModel +public class AdminWindowViewModel : ViewModelBase { } \ No newline at end of file diff --git a/Policlinica/ViewModels/AutorizationViewModel.cs b/Policlinica/ViewModels/AutorizationViewModel.cs index 69d798f..4d96780 100644 --- a/Policlinica/ViewModels/AutorizationViewModel.cs +++ b/Policlinica/ViewModels/AutorizationViewModel.cs @@ -15,49 +15,59 @@ public partial class AutorizationViewModel : ViewModelBase [ObservableProperty] string _login; [ObservableProperty] string _password; - [ObservableProperty] List _usersList; - [ObservableProperty] UserRepository _repository; + [ObservableProperty] public string _eror; - public AutorizationViewModel(IServiceProvider provider, UserRepository repository,Navigation navigation ) + public AutorizationViewModel(IServiceProvider provider, Navigation navigation) { _provider = provider; _navigation = navigation; - - _usersList = repository.GetUsersByTest(); - // _repository = repository; } [RelayCommand] public void StartTest() { - var vm = ActivatorUtilities.CreateInstance( _provider, - Login); + Login, + Password); var win = _provider.GetRequiredService(); - //vm.SetClose(win.Close); - win.DataContext = vm; - win.Show(); - // close(); - - } - [RelayCommand] - public void SaveDB() - { - _repository.CheckLoginAndPassword(Login,Password); - var vm = _provider.GetRequiredService(); - var win = _provider.GetRequiredService(); - //vm.SetClose(win.Close); win.DataContext = vm; win.Show(); - //close(); + // close(); } + [RelayCommand] + public void Conti() + { + List SpUser = new(); + + using (UserRepository repository = _provider.GetRequiredService()) + { + SpUser = repository.CheckLoginAndPassword(Login, Password); + } + + if (SpUser.Count == 0) + { + Eror = "Неверный логин или пароль"; + return; + } + + + var vm = _provider.GetRequiredService(); + var win = _provider.GetRequiredService(); + //vm.SetClose(win.Close); + win.DataContext = vm; + win.Show(); + //Сlose(); + } + + [RelayCommand] void OpenRegWin() { var vm = _provider.GetRequiredService(); _navigation.Navigate(vm); } + } \ No newline at end of file diff --git a/Policlinica/ViewModels/RegistrationViewModel.cs b/Policlinica/ViewModels/RegistrationViewModel.cs index fae5bcf..00f6417 100644 --- a/Policlinica/ViewModels/RegistrationViewModel.cs +++ b/Policlinica/ViewModels/RegistrationViewModel.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.DependencyInjection; @@ -7,35 +8,48 @@ using Policlinica.Views; namespace Policlinica.ViewModels; -public partial class RegistrationViewModel:ViewModelBase +public partial class RegistrationViewModel : ViewModelBase { private readonly IServiceProvider _serviceProvider; private readonly Navigation _navigation; - + private readonly IServiceProvider _provider; + [ObservableProperty] private string _password; [ObservableProperty] private string _login; + [ObservableProperty] public string _eror; - public RegistrationViewModel(IServiceProvider serviceProvider, Navigation navigation) + public RegistrationViewModel(IServiceProvider serviceProvider, Navigation navigation, IServiceProvider provider) { _serviceProvider = serviceProvider; _navigation = navigation; + _provider = provider; + } - + [RelayCommand] void OpenAutorization() { var vm = _serviceProvider.GetRequiredService(); _navigation.Navigate(vm); + } [RelayCommand] void Registration() { + + using (UserRepository repository = _provider.GetRequiredService()) + { + var count = repository.CheckLogin(Login).Count; + if (count > 0) + { + Eror = "Такой логин уже существует"; + return; + } var user = new User() { Name = Login, Password = Password, - }; using (var rep = _serviceProvider.GetRequiredService()) @@ -43,13 +57,14 @@ public partial class RegistrationViewModel:ViewModelBase rep.AddUser(user); } - // var vm = ActivatorUtilities.CreateInstance(_serviceProvider); - // var win = _serviceProvider.GetRequiredService(); - //win.DataContext = vm; - //win.Show(); + // var vm = ActivatorUtilities.CreateInstance(_serviceProvider); + // var win = _serviceProvider.GetRequiredService(); + //win.DataContext = vm; + //win.Show(); //_navigation.Close(); var vm = _serviceProvider.GetRequiredService(); _navigation.Navigate(vm); + } } diff --git a/Policlinica/Views/AutorizationView.axaml b/Policlinica/Views/AutorizationView.axaml index 68a76e7..59807d2 100644 --- a/Policlinica/Views/AutorizationView.axaml +++ b/Policlinica/Views/AutorizationView.axaml @@ -16,9 +16,10 @@ +