BathhouseManagment/ViewModels/WindowViewModels/MainWindowViewModel.cs

87 lines
3.1 KiB
C#

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;
[ObservableProperty] ClientViewModel _clientViewModel;
public MainWindowViewModel(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
OrderViewModel = _serviceProvider.GetRequiredService<OrderViewModel>();
EmployeeViewModel = _serviceProvider.GetRequiredService<EmployeeViewModel>();
ServiceViewModel = _serviceProvider.GetRequiredService<ServiceViewModel>();
ZoneViewModel = _serviceProvider.GetRequiredService<ZoneViewModel>();
DiscountViewModel = _serviceProvider.GetRequiredService<DiscountViewModel>();
PositionViewModel = _serviceProvider.GetRequiredService<PositionViewModel>();
ClientViewModel = _serviceProvider.GetRequiredService<ClientViewModel>();
}
[RelayCommand]
public void AddEmployee()
{
var vm = ActivatorUtilities.CreateInstance<AddEmployeeWindowViewModel>(_serviceProvider);
var win = _serviceProvider.GetService<AddEmployeeWindow>();
win.DataContext = vm;
win.Show();
vm.SetClose(win.Close);
}
[RelayCommand]
public void AddPosition()
{
var vm = ActivatorUtilities.CreateInstance<AddPositionWindowViewModel>(_serviceProvider);
var win = _serviceProvider.GetService<AddPositionWindow>();
win.DataContext = vm;
win.Show();
vm.SetClose(win.Close);
}
[RelayCommand]
public void AddZone()
{
var vm = ActivatorUtilities.CreateInstance<AddZoneWindowViewModel>(_serviceProvider);
var win = _serviceProvider.GetService<AddZoneWindow>();
win.DataContext = vm;
win.Show();
vm.SetClose(win.Close);
}
[RelayCommand]
public void AddClient()
{
var vm = ActivatorUtilities.CreateInstance<AddClientWindowViewModel>(_serviceProvider);
var win = _serviceProvider.GetService<AddClientWindow>();
win.DataContext = vm;
win.Show();
vm.SetClose(win.Close);
}
[RelayCommand]
public void AddService()
{
var vm = ActivatorUtilities.CreateInstance<AddServiceWindowViewModel>(_serviceProvider);
var win = _serviceProvider.GetService<AddServiceWindow>();
win.DataContext = vm;
win.Show();
vm.SetClose(win.Close);
}
}