52 lines
1.8 KiB
C#
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;
|
|
}
|
|
} |