using Cowain.Bake.Common; using Cowain.Bake.Common.Core; using Cowain.Bake.Common.Enums; using Cowain.Bake.BLL; using Cowain.Bake.Model; using HandyControl.Controls; using Prism.Commands; using Prism.Mvvm; using Prism.Regions; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Unity; namespace Cowain.Bake.UI.ProductManagement.ViewModels { public class TaskMaintainViewModel : ViewModelBase //BindableBase { private string _title; public string Title { get { return _title; } set { SetProperty(ref _title, value); } } private TTaskType selectTask; public TTaskType SelectTask { get => selectTask ?? (selectTask = new TTaskType()); set { SetProperty(ref selectTask, value); } } private TTaskType _editTask; public TTaskType EditTask { get => _editTask ?? (_editTask = new TTaskType()); set { SetProperty(ref _editTask, value); } } private ObservableCollection _taskList; public ObservableCollection TaskList { //get { return _taskList; } get => _taskList ?? (_taskList = new ObservableCollection()); set { SetProperty(ref _taskList, value); } } private List machineList; public List MachineList { get => machineList ?? (machineList = new List()); set { SetProperty(ref machineList, value); } } private List _palletStatusList; public List PalletStatusList { get => _palletStatusList ?? (_palletStatusList = new List()); set { SetProperty(ref _palletStatusList, value); } } public TaskMaintainViewModel(IUnityContainer unityContainer, IRegionManager regionManager) : base(unityContainer, regionManager) { _taskList = new ObservableCollection(); _unityContainer = unityContainer; _regionManager = regionManager; PalletStatusList = EPalletStatus.Loading.GetListDesc(); MachineList = EnumHelper.GetDescriptions(); Refresh(); } public DelegateCommand EnableCommand => new DelegateCommand(() => { if (SelectTask != null && SelectTask.Id > 0) { var tServices = _unityContainer.Resolve(); var res = tServices.UpdateEnableTask(SelectTask.Id, !SelectTask.Enable); if (res > 0) { Growl.Success("是否启用任务修改完成!"); Refresh(); } else { Growl.Fatal("是否启用任务失败!"); } } }); public DelegateCommand SelectCommand => new DelegateCommand(() => { if (SelectTask != null && SelectTask.Id > 0) { //深拷贝 EditTask = BasicFramework.DeepCopy(SelectTask); } }); public DelegateCommand AddCommand => new DelegateCommand(() => { var result = HandyControl.Controls.MessageBox.Ask($@"是否确定要添加任务?", "操作提示"); if (result == System.Windows.MessageBoxResult.Cancel) { return; } var res = _unityContainer.Resolve().AddTaskConfig(EditTask); if (res > 0) { Growl.Success("任务添加完成!"); Refresh(); } else { Growl.Fatal("任务添加失败!"); } }); public DelegateCommand EditCommand => new DelegateCommand(() => { var result = HandyControl.Controls.MessageBox.Ask($@"是否确定要修改任务?", "操作提示"); if (result == System.Windows.MessageBoxResult.Cancel) { return; } var res = _unityContainer.Resolve().EditTaskConfig(EditTask); if (res > 0) { Growl.Success("任务修改完成!"); Refresh(); } else { Growl.Fatal("任务修改失败,优先级不存在!"); } }); public override void Refresh() { TaskList.Clear(); List list = _unityContainer.Resolve().GetAll(); list.ForEach(p => TaskList.Add(p)); } } }