using Aitex.Core.Util; using Aitex.Core.Utilities; using Caliburn.Micro; using FurnaceUI.Models; using MECF.Framework.Common.CommonData.EnumData; using MECF.Framework.Common.DataCenter; using MECF.Framework.Common.Utilities; using MECF.Framework.UI.Client.CenterViews.Editors.Recipe; using MECF.Framework.UI.Client.CenterViews.Editors.Sequence; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data; using System.Windows.Documents; namespace FurnaceUI.Views.Editors { public class ScheduledMaintenanceMonitorViewModel : FurnaceUIViewModelBase { #region 构造函数 /// /// 构造函数 /// /// public ScheduledMaintenanceMonitorViewModel(ScheduleMaintenanceDataItem dataItem) { EditModel = CloneUtil.CloneObject(dataItem) as ScheduleMaintenanceDataItem; EnumLoop.ForEach((item) => { MaintenanceProcessingList.Add(item.ToString()); }); } private bool _jobAutoStartCommandVisibility = false; public bool JobAutoStartCommandVisibility { get => _jobAutoStartCommandVisibility; set { _jobAutoStartCommandVisibility = value; NotifyOfPropertyChange("JobAutoStartCommandVisibility"); } } private List _maintenanceProcessingList = new List(); public List MaintenanceProcessingList { get => _maintenanceProcessingList; set { _maintenanceProcessingList = value; NotifyOfPropertyChange("MaintenanceProcessingList"); } } #endregion #region 属性 EditModel /// /// EditModel /// public ScheduleMaintenanceDataItem EditModel { get; set; } #endregion public bool IsEnable { get { return _isEnable; } set { _isEnable = value; NotifyOfPropertyChange("IsEnable"); } } private bool _isEnable; #region 方法 CurrentValueChange /// /// CurrentValueChange /// public void CurrentValueChange() { IsEnable = !IsEnable; } #endregion protected override void InvokeAfterUpdateProperty(Dictionary data) { if (EditModel != null && !string.IsNullOrEmpty(EditModel.MaintenanceProcessing) && EditModel.MaintenanceProcessing == MaintenanceProcessingCommandEnum.JobAutoStart.ToString()) { JobAutoStartCommandVisibility = true; } else { EditModel.AssociationProcessRecipeName = ""; JobAutoStartCommandVisibility = false; } } public void SelectProcessRecipe() { RecipeSelectDialogViewModel dialog = new RecipeSelectDialogViewModel(); dialog.DisplayName = "Select Recipe"; var recipeProvider = new RecipeProvider(); var processType = QueryDataClient.Instance.Service.GetConfig($"System.Recipe.SupportedProcessType"); if (processType == null) { processType = "Process"; } var ProcessTypeFileList = new ObservableCollection(); string[] recipeProcessType = ((string)processType).Split(','); var type = new ProcessTypeFileItem(); type.ProcessType = recipeProcessType[0]; var prefix = $"Furnace\\{recipeProcessType[0]}"; var recipes = recipeProvider.GetXmlRecipeList(prefix); type.FileListByProcessType = RecipeSequenceTreeBuilder.BuildFileNode(prefix, "", false, recipes)[0].Files; ProcessTypeFileList.Add(type); dialog.ProcessTypeFileList = ProcessTypeFileList; WindowManager wm = new WindowManager(); bool? bret = wm.ShowDialog(dialog); if ((bool)bret) { EditModel.AssociationProcessRecipeName = dialog.DialogResult; } } #region 方法 ClearCurrentValue /// /// ClearCurrentValue /// public void ClearCurrentValue() { if (EditModel != null) { EditModel.CurrentValue = 0; } } #endregion #region 方法 SetSave public void SetSave() { this.TryClose(true); } #endregion #region 方法 SetCancel public void SetCancel() { TryClose(); } #endregion } }