using System; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.DependencyInjection; using Policlinica.DB; using Policlinica.Views; namespace Policlinica.ViewModels; public partial class RegistrationViewModel:ViewModelBase { private readonly IServiceProvider _serviceProvider; private readonly Navigation _navigation; [ObservableProperty] private string _password; [ObservableProperty] private string _login; public RegistrationViewModel(IServiceProvider serviceProvider, Navigation navigation) { _serviceProvider = serviceProvider; _navigation = navigation; } [RelayCommand] void OpenAutorization() { var vm = _serviceProvider.GetRequiredService(); _navigation.Navigate(vm); } [RelayCommand] void Registration() { var user = new User() { Name = Login, Password = Password, }; using (var rep = _serviceProvider.GetRequiredService()) { rep.AddUser(user); } var vm = ActivatorUtilities.CreateInstance(_serviceProvider); var win = _serviceProvider.GetRequiredService(); win.DataContext = vm; win.Show(); _navigation.Close(); } }