87 lines
3.2 KiB
C#
87 lines
3.2 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.Factories;
|
||
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;
|
||
using MsBox.Avalonia;
|
||
using MsBox.Avalonia.Enums;
|
||
|
||
namespace AvaloniaApplication14_Inventory_300326.ViewModels;
|
||
|
||
public partial class EmployeesViewModel : ViewModelBase
|
||
{
|
||
private IServiceProvider _serviceProvider;
|
||
private MainWindow _currentWindow;
|
||
|
||
private EmployeesVisualFactory _employeesVisualFactory;
|
||
private EmployeesFactory _employeesFactory;
|
||
|
||
[ObservableProperty] private ObservableCollection<EmployeeVisual> _employees;
|
||
[ObservableProperty] private EmployeeVisual _selectedEmployeeVisual;
|
||
|
||
public EmployeesViewModel(IServiceProvider serviceProvider)
|
||
{
|
||
_serviceProvider = serviceProvider;
|
||
|
||
_employeesVisualFactory = _serviceProvider.GetService<EmployeesVisualFactory>();
|
||
_employeesFactory = _serviceProvider.GetService<EmployeesFactory>();
|
||
}
|
||
|
||
public async Task Fire()
|
||
{
|
||
List<Equipment> temp = null;
|
||
using (var repo = _serviceProvider.GetService<EquipmentRepository>())
|
||
{
|
||
temp = repo.DoesEmployeeHaveEquipments(SelectedEmployeeVisual.Id);
|
||
}
|
||
|
||
if (temp != null)
|
||
{
|
||
if (temp.Count > 0)
|
||
{
|
||
string errorMessage = "За выбранным сотрудником числится следующие вещи: \n";
|
||
foreach (var item in temp)
|
||
{
|
||
errorMessage += $"{item.Name} \n";
|
||
}
|
||
var win = MessageBoxManager.GetMessageBoxStandard("Ошибка", errorMessage, ButtonEnum.Ok, Icon.Error);
|
||
await win.ShowWindowDialogAsync(_currentWindow);
|
||
}
|
||
}
|
||
}
|
||
|
||
public async Task DoubleTappedEmployeeDataGrid()
|
||
{
|
||
var EmployeeVm = ActivatorUtilities.CreateInstance<EmployeeEditingWindowViewModel>(_serviceProvider, _employeesFactory.CreateFromEmployeeVisual(SelectedEmployeeVisual));
|
||
var EmployeeWin = ActivatorUtilities.CreateInstance<EmployeeEditingWindow>(_serviceProvider, EmployeeVm);
|
||
await EmployeeWin.ShowDialog(_currentWindow);
|
||
ShowEmployees();
|
||
GetEmployees();
|
||
}
|
||
|
||
public void ShowEmployees()
|
||
{
|
||
_currentWindow.ScrollViewerDataGridTech.IsVisible = false;
|
||
_currentWindow.ScrollViewerDataGridEmpl.IsVisible = true;
|
||
_currentWindow.ScrollViewerDataGridPos.IsVisible = false;
|
||
}
|
||
|
||
public void GetEmployees()
|
||
{
|
||
using (var employeeRepository = _serviceProvider.GetService<EmployeeRepository>())
|
||
{
|
||
var employees = employeeRepository.GetAllFrom0();
|
||
Employees = new ObservableCollection<EmployeeVisual>(_employeesVisualFactory.ConvertListEmplToEmplVis(employees));
|
||
}
|
||
}
|
||
public void SetScreen(MainWindow window)
|
||
{
|
||
_currentWindow = window;
|
||
}
|
||
} |