using System.Collections.ObjectModel; using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Messaging; using Seyounth.Core.Extensions; using Seyounth.Hyosung.Data.Entities; using Seyounth.Hyosung.Data.Models; using Seyounth.Hyosung.Data.Services; namespace Seyounth.Hyosung.ViewModels; public partial class VarietyViewModel : ObservableObject { [ObservableProperty] private ObservableCollection _varieties; [ObservableProperty] private ObservableCollection _pallets; public IEnumerable NeedTypeItems { get; } private readonly IVarietyService _varietyService; private readonly HomeViewModel _homeViewModel; public VarietyViewModel(PalletManagerViewModel palletManagerViewModel, IVarietyService varietyService, HomeViewModel homeViewModel) { Pallets = new ObservableCollection(palletManagerViewModel.Pallets); _homeViewModel = homeViewModel; _varietyService = varietyService; _varieties = new ObservableCollection(varietyService.GetAll()); var needTypes = EnumHelper.GetValues(); NeedTypeItems = needTypes.Select(nt => new NeedTypeEnumItem { Value = nt, Description = nt.GetDescription() }); } public class SaveVarietyCompletedMessage { } [RelayCommand] private void OnDeleteVariety(object obj) { if (obj is Variety variety) { Varieties.Remove(variety); _varietyService.DeleteVarietyAsync(variety); } else { Console.Write("Object is not a Pallet"); } } [RelayCommand] private void OnSaveVariety(object obj) { if (obj is Variety variety) { if (variety.Id == 0) { _varietyService.AddVarietyAsync(variety); } else _varietyService.UpdateVarietyAsync(variety); } //同步更新主页的品种列表 _homeViewModel.Varieties = Varieties; WeakReferenceMessenger.Default.Send(new SaveVarietyCompletedMessage()); } }