123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- using DbCommon.BusinessCore.BaseCore;
- using DbCommon.Enties.DbModels;
- using Prism.Commands;
- using Prism.Events;
- using ProjectManagementSystem.Common.Extenions;
- using ProjectManagementSystem.Common.Logger;
- using ProjectManagementSystem.Language;
- using ProjectManagementSystemView.Infrastructure.Events;
- using ProjectManagementSystemView.Infrastructure.Extensions;
- using ProjectManagementSystemView.Infrastructure.Models;
- using PropertyChanged;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- namespace ProjectManagementSystemView.ViewModels
- {
- [AddINotifyPropertyChangedInterface]
- public class PmsTaskInfoViewModel
- {
- private PmsTaskInfoManager pmsTaskInfoManager = new PmsTaskInfoManager();
- public bool IsVisible { get; set; }
- public VmPmsTaskInfo SelectedVmData { get; set; }
- public ObservableCollection<VmPmsTaskInfo> VmDatas { get; set; } = new ObservableCollection<VmPmsTaskInfo>();
- public DelegateCommand<object> TaskDeleteCommand { get; set; }
- public PmsTaskInfoViewModel(IEventAggregator eventAggregator)
- {
- TaskDeleteCommand = new DelegateCommand<object>(arg =>
- {
- TaskOpreate(arg, pmsTaskInfoManager.Delete);
- });
- eventAggregator.GetEvent<UpdateViewEvent>().Subscribe(UpdateView);
- }
- private void UpdateView()
- {
- if (!IsVisible) return;
- var dataList = pmsTaskInfoManager.GetList();
- VmDatas.Update(dataList, (s, v) => s.TaskID == v.TaskID);
- }
- private void TaskOpreate(object sender, Predicate<string> predicate)
- {
- string taskId = SelectedVmData?.TaskID;
- if (string.IsNullOrEmpty(taskId)) return;
- string allWarehouse = $"({SelectedVmData.WareHouseCode} {SelectedVmData.LocationCode} {SelectedVmData.MaterialId}) => ({SelectedVmData.TargetWareHouseCode} {SelectedVmData.TargetLocationCode})";
- string text = $"{sender} {taskId}? {allWarehouse}";
- var dialogResult = MessageBox.Show(text, Langs.Prompt, MessageBoxButton.OKCancel, MessageBoxImage.Question, MessageBoxResult.Cancel);
- if (dialogResult != MessageBoxResult.OK)
- {
- return;
- }
- bool result = predicate(taskId);
- CLog.Instance.TaskLog.WriteInfo(Langs.PmsTaskInfoViewManualOperation, $"{taskId},{sender}{result.ToChineseString()}");
- }
- }
- }
|