using System; using System.Collections.Generic; using BathHouseManagmet.Database; using BathHouseManagmet.Models; using BathHouseManagmet.Views; using BathHouseManagmet.Views.AddWindows; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.DependencyInjection; namespace BathHouseManagmet.ViewModels; public partial class MainWindowViewModel : ViewModelBase { private readonly IServiceProvider _serviceProvider; [ObservableProperty] OrderViewModel _orderViewModel; [ObservableProperty] EmployeeViewModel _employeeViewModel; [ObservableProperty] ServiceViewModel _serviceViewModel; [ObservableProperty] ZoneViewModel _zoneViewModel; [ObservableProperty] DiscountViewModel _discountViewModel; [ObservableProperty] PositionViewModel _positionViewModel; public MainWindowViewModel(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; OrderViewModel = _serviceProvider.GetRequiredService(); EmployeeViewModel = _serviceProvider.GetRequiredService(); ServiceViewModel = _serviceProvider.GetRequiredService(); ZoneViewModel = _serviceProvider.GetRequiredService(); DiscountViewModel = _serviceProvider.GetRequiredService(); PositionViewModel = _serviceProvider.GetRequiredService(); } [RelayCommand] public void AddEmployee() { var vm = ActivatorUtilities.CreateInstance(_serviceProvider); var win = _serviceProvider.GetService(); win.DataContext = vm; win.Show(); vm.SetClose(win.Close); } [RelayCommand] public void AddPosition() { var vm = ActivatorUtilities.CreateInstance(_serviceProvider); var win = _serviceProvider.GetService(); win.DataContext = vm; win.Show(); vm.SetClose(win.Close); } [RelayCommand] public void AddZone() { var vm = ActivatorUtilities.CreateInstance(_serviceProvider); var win = _serviceProvider.GetService(); win.DataContext = vm; win.Show(); vm.SetClose(win.Close); } }