100 lines
2.8 KiB
C#
100 lines
2.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.Threading.Tasks;
|
|
using Avalonia.Controls.Notifications;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using CommunityToolkit.Mvvm.Messaging;
|
|
using Seyounth.Hyosung.Data.Models;
|
|
using Seyounth.Hyosung.Data.Services;
|
|
using Seyounth.Hyosung.Data.Services.Hyosung;
|
|
using SukiUI.Toasts;
|
|
|
|
namespace Seyounth.Hyosung.Ava.ViewModels;
|
|
|
|
public partial class PalletManagerViewModel : ObservableObject
|
|
{
|
|
public class SavePalletCompletedMessage;
|
|
|
|
public string Title => "辅料管理";
|
|
[ObservableProperty] private ObservableCollection<Pallet> _pallets;
|
|
|
|
private readonly ISukiToastManager _toastManager;
|
|
|
|
private readonly IPalletService _palletService;
|
|
|
|
|
|
public PalletManagerViewModel(IPalletService palletService, ISukiToastManager toastManager)
|
|
{
|
|
_toastManager = toastManager;
|
|
_palletService = palletService;
|
|
Pallets = new ObservableCollection<Pallet>(palletService.GetPallets());
|
|
}
|
|
|
|
[RelayCommand]
|
|
private void AddNewRow()
|
|
{
|
|
Pallets.Add(new Pallet());
|
|
}
|
|
|
|
[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);
|
|
_toastManager.CreateToast()
|
|
.Dismiss().After(TimeSpan.FromSeconds(3))
|
|
.OfType(NotificationType.Success)
|
|
.Dismiss().ByClicking()
|
|
.Queue();
|
|
}
|
|
else
|
|
{
|
|
Console.Write("Object is not a Pallet");
|
|
}
|
|
}
|
|
|
|
[RelayCommand]
|
|
private async Task OnSavePallet(object obj)
|
|
{
|
|
if (obj is Pallet pallet)
|
|
{
|
|
if (pallet.Id == 0)
|
|
{
|
|
await _palletService.AddPalletAsync(pallet);
|
|
_toastManager.CreateToast()
|
|
.WithTitle("新增辅料成功")
|
|
.Dismiss().After(TimeSpan.FromSeconds(3))
|
|
.OfType(NotificationType.Success)
|
|
.Dismiss().ByClicking()
|
|
.Queue();
|
|
}
|
|
else
|
|
{
|
|
await _palletService.UpdatePalletAsync(pallet);
|
|
_toastManager.CreateToast()
|
|
.WithTitle("修改辅料成功")
|
|
.Dismiss().After(TimeSpan.FromSeconds(3))
|
|
.OfType(NotificationType.Success)
|
|
.Dismiss().ByClicking()
|
|
.Queue();
|
|
}
|
|
}
|
|
|
|
|
|
WeakReferenceMessenger.Default.Send(new SavePalletCompletedMessage());
|
|
}
|
|
} |