62 lines
2.3 KiB
C#
62 lines
2.3 KiB
C#
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<EquipmentVisual> _techs;
|
|
[ObservableProperty] private EquipmentVisual _selectedEquipmentVisual;
|
|
|
|
public EquipmentViewModel(IServiceProvider serviceProvider)
|
|
{
|
|
_serviceProvider = serviceProvider;
|
|
|
|
_equipmentFactory = _serviceProvider.GetRequiredService<EquipmentFactory>();
|
|
_equipmentVisualFactory = _serviceProvider.GetRequiredService<EquipmentVisualFactory>();
|
|
|
|
GetTeches();
|
|
}
|
|
|
|
public void GetTeches()
|
|
{
|
|
using (var equipmentRepository = _serviceProvider.GetService<EquipmentRepository>())
|
|
{
|
|
List<Equipment> teches = equipmentRepository.GetAll();
|
|
Techs = new ObservableCollection<EquipmentVisual>(_equipmentVisualFactory.ConvertListEqToEqVis(teches));
|
|
}
|
|
}
|
|
|
|
public async Task DoubleTappedTechDataGrid()
|
|
{
|
|
var vm = ActivatorUtilities.CreateInstance<EquipmentEditingWindowViewModel>(_serviceProvider, _equipmentFactory.CreateFromVisual(SelectedEquipmentVisual));
|
|
var win = ActivatorUtilities.CreateInstance<EquipmentEditingWindow>(_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;
|
|
}
|
|
} |