2025-04-07 23:25:45 +08:00

72 lines
1.8 KiB
C#

using System.Collections.ObjectModel;
using CommunityToolkit.Mvvm.Messaging;
using Seyounth.Hyosung.Data.Models;
using Seyounth.Hyosung.Data.Services;
using Wpf.Ui.Controls;
namespace Seyounth.Hyosung.UI.ViewModels.Pages;
public partial class PalletManagementViewModel : ObservableObject, INavigationAware
{
public class SavePalletCompletedMessage;
[ObservableProperty] private ObservableCollection<Pallet> _pallets = [];
private readonly IPalletService _palletService;
/// <inheritdoc/>
public PalletManagementViewModel(IPalletService palletService)
{
_palletService = palletService;
Pallets = new ObservableCollection<Pallet>(_palletService.GetPallets());
}
public void OnNavigatedTo()
{
Pallets = new ObservableCollection<Pallet>(_palletService.GetPallets());
}
public void OnNavigatedFrom()
{
}
[RelayCommand]
private void AddPallet()
{
var newPallet = new Pallet
{
/* 初始化默认值 */
};
Pallets.Add(newPallet);
}
[RelayCommand]
private void OnDeletePallet(object obj)
{
if (obj is Pallet pallet)
{
Pallets.Remove(pallet);
_palletService.DeletePalletAsync(pallet);
}
else
{
Console.Write("Object is not a Pallet");
}
}
[RelayCommand]
private void OnSavePallet(object obj)
{
if (obj is Pallet pallet)
{
if (pallet.Id == 0)
{
var id = _palletService.AddPalletAsync(pallet).Result;
//Pallets = new ObservableCollection<Pallet>(_palletService.GetPallets());
}
else
_palletService.UpdatePalletAsync(pallet);
}
WeakReferenceMessenger.Default.Send(new SavePalletCompletedMessage());
}
}