100 lines
3.3 KiB
C#
Raw Normal View History

2025-04-07 23:25:45 +08:00
using System.Collections.ObjectModel;
using Seyounth.Hyosung.Data.Models;
using Seyounth.Hyosung.Data.Services;
using Seyounth.Hyosung.Runtime;
using Wpf.Ui;
using Wpf.Ui.Controls;
namespace Seyounth.Hyosung.UI.ViewModels.Pages
{
public partial class DashboardViewModel : ObservableObject, INavigationAware
{
[ObservableProperty] private ObservableCollection<Variety> _varieties;
[ObservableProperty] private Variety _selectedVariety;
[ObservableProperty] private List<string> _yarnCarTypes;
[ObservableProperty] private List<string> _yarnCarSideType;
[ObservableProperty] private int _selectedYarnCarTypeIndex;
[ObservableProperty] private int _selectedYarnCarSideTypeIndex;
private readonly IVarietyService _varietyService;
private readonly IPalletService _palletService;
private readonly ISnackbarService _snackbarService;
private readonly IHyosungRuntime _runtime;
public DashboardViewModel(IVarietyService varietyService, ISnackbarService snackbarService,
IHyosungRuntime runtime)
{
_runtime = runtime;
SelectedYarnCarTypeIndex = 0;
SelectedYarnCarSideTypeIndex = 0;
_varietyService = varietyService;
_snackbarService = snackbarService;
Varieties = new ObservableCollection<Variety>(varietyService.GetAll());
YarnCarTypes =
[
"A",
"B",
"C",
"D"
];
YarnCarSideType =
[
"正面",
"反面"
];
}
public void OnNavigatedTo()
{
Varieties = new ObservableCollection<Variety>(_varietyService.GetAll());
}
public void OnNavigatedFrom()
{
}
[RelayCommand]
private void OnChangeVariety()
{
try
{
SelectedVariety.YarnCarType = SelectedYarnCarTypeIndex + 1;
SelectedVariety.YarnCarSide = SelectedYarnCarSideTypeIndex + 1;
_runtime.SendVarietyToPlcAsync(SelectedVariety);
_snackbarService.Show("切换成功", $"当前产品为: {SelectedVariety.Name}", ControlAppearance.Success,
new SymbolIcon(SymbolRegular.ArrowCircleUp24), TimeSpan.FromSeconds(5));
}
catch (Exception e)
{
_snackbarService.Show("切换异常", e.Message, ControlAppearance.Danger,
new SymbolIcon(SymbolRegular.ArrowCircleUp24), TimeSpan.FromSeconds(5));
}
}
[RelayCommand]
private void OnChangeVarietyLastNo()
{
if (SelectedVariety.LastNo != null)
{
_varietyService.SetLastNo(SelectedVariety.Id, SelectedVariety.LastNo.Value);
_snackbarService.Show("保存成功", "当前控制号保存成功", ControlAppearance.Success,
new SymbolIcon(SymbolRegular.Save24), TimeSpan.FromSeconds(5));
}
else
{
_snackbarService.Show("保存失败", "当前控制号为空", ControlAppearance.Danger,
new SymbolIcon(SymbolRegular.Save24), TimeSpan.FromSeconds(5));
}
}
}
}