using System; using System.Collections.Generic; using BathHouseManagmet.Database; using BathHouseManagmet.Models; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using Microsoft.Extensions.DependencyInjection; namespace BathHouseManagmet.ViewModels; public partial class AddPositionWindowViewModel : ViewModelBase { private readonly IServiceProvider _serviceProvider; [ObservableProperty] private string _positionName; [ObservableProperty] private List _positions; public AddPositionWindowViewModel(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; using (var rep = serviceProvider.GetRequiredService()) Positions = new List(rep.GetPage()); } [RelayCommand] public void AddPosition() { var position = new Position() { Name = PositionName }; using (var rep = _serviceProvider.GetRequiredService()) rep.Add(position); CloseWindow(); } [RelayCommand] public void CloseWindow() { close(); } private Action close; public void SetClose(Action close) { this.close = close; } }