Inventory/AvaloniaApplication14_Inven.../ViewModels/PositionViewModel.cs

52 lines
1.8 KiB
C#

using System;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using AvaloniaApplication14_Inventory_300326.Models.DataBase;
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 PositionViewModel : ViewModelBase
{
private IServiceProvider _serviceProvider;
private MainWindow _currentWindow;
[ObservableProperty] private ObservableCollection<Position> _positions;
[ObservableProperty] private Position _selectedPosition;
public PositionViewModel(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
}
public void GetPositions()
{
using (var positionRepository = _serviceProvider.GetService<PositionRepository>())
{
var positions = positionRepository.GetAllFrom0();
Positions = new ObservableCollection<Position>(positions);
}
}
public void ShowPositions()
{
_currentWindow.ScrollViewerDataGridTech.IsVisible = false;
_currentWindow.ScrollViewerDataGridEmpl.IsVisible = false;
_currentWindow.ScrollViewerDataGridPos.IsVisible = true;
}
public async Task DoubleTappedPositionDataGrid()
{
var PositionVm = ActivatorUtilities.CreateInstance<PositionEditingWindowViewModel>(_serviceProvider, SelectedPosition);
var win = ActivatorUtilities.CreateInstance<PositionEditingWindow>(_serviceProvider, PositionVm);
await win.ShowDialog(_currentWindow);
ShowPositions();
GetPositions();
}
public void SetScreen(MainWindow window)
{
_currentWindow = window;
}
}