using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Threading.Tasks; using AvaloniaApplication14_Inventory_300326.Models.DataBase; using AvaloniaApplication14_Inventory_300326.Models.Factoryes; using AvaloniaApplication14_Inventory_300326.Models.Models; using AvaloniaApplication14_Inventory_300326.Views; using CommunityToolkit.Mvvm.ComponentModel; using Microsoft.Extensions.DependencyInjection; namespace AvaloniaApplication14_Inventory_300326.ViewModels; public partial class EquipmentViewModel : ViewModelBase { private IServiceProvider _serviceProvider; private MainWindow _currentWindow; private EquipmentFactory _equipmentFactory; private EquipmentVisualFactory _equipmentVisualFactory; [ObservableProperty] private ObservableCollection _techs; [ObservableProperty] private EquipmentVisual _selectedEquipmentVisual; public EquipmentViewModel(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; _equipmentFactory = _serviceProvider.GetRequiredService(); _equipmentVisualFactory = _serviceProvider.GetRequiredService(); GetTeches(); } public void GetTeches() { using (var equipmentRepository = _serviceProvider.GetService()) { List teches = equipmentRepository.GetAll(); Techs = new ObservableCollection(_equipmentVisualFactory.ConvertListEqToEqVis(teches)); } } public async Task DoubleTappedTechDataGrid() { var vm = ActivatorUtilities.CreateInstance(_serviceProvider, _equipmentFactory.CreateFromVisual(SelectedEquipmentVisual)); var win = ActivatorUtilities.CreateInstance(_serviceProvider, vm); await win.ShowDialog(_currentWindow); ShowTeches(); GetTeches(); } public void ShowTeches() { _currentWindow.ScrollViewerDataGridTech.IsVisible = true; _currentWindow.ScrollViewerDataGridEmpl.IsVisible = false; _currentWindow.ScrollViewerDataGridPos.IsVisible = false; } public void SetScreen(MainWindow window) { _currentWindow = window; } }