| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | using OpenSEMI.ClientBase;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using FurnaceUI.Models;using MECF.Framework.Common.OperationCenter;using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;using Caliburn.Micro;using System.Collections.ObjectModel;using Caliburn.Micro.Core;using Aitex.Core.Util;using FurnaceUI.Views.Editors;namespace FurnaceUI.Views.Operations{    public class PMCommandViewModel : FurnaceUIViewModelBase    {        public bool IsEnabledAction { get; set; }        [Subscription("PM1.IsExecuteAbortRecipe")]        public bool PM1IsExecuteAbortRecipe { get; set; }        [Subscription("PM1.AbortRecipeName")]        public string PM1AbortRecipeName { get; set; }        [Subscription("PM1.MainRecipeName")]        public string PM1MainRecipeName { get; set; }        [Subscription("PM1.RecipeHold")]        public bool PM1IsRecipeHold { get; set; }        public bool IsHoldButtonEnable => !PM1IsRecipeHold;        public bool IsPermission => this.Permission == 3;        public PMCommandViewModel()        {                  }        public void ClickCmd(string cmd)        {            switch (cmd)            {                case "OK":                    ((Window)GetView()).DialogResult = true;                    break;                case "Cancel":                    ((Window)GetView()).DialogResult = false;                    break;                default:                    break;            }        }        public void Skip()        {            if (!DialogBox.Confirm("Are you sure to skip current step?"))                return;            InvokeClient.Instance.Service.DoOperation($"PM1.RecipeSkipStep", "");        }        public void Jump()        {            if (!DialogBox.Confirm("Are you sure to jump current step?"))                return;            var recipes = new RecipeDataBase();            //if (PM1IsExecuteAbortRecipe)            //{            //    recipes.PrefixPath = "Furnace\\Abort";            //    recipes.Name = PM1AbortRecipeName;            //}            //else            {                recipes.PrefixPath = "Furnace\\Process";                recipes.Name = PM1MainRecipeName;            }            RecipeProvider _recipeProvider = new RecipeProvider();            recipes.Clear();            var recipeContent = _recipeProvider.LoadRecipe(recipes.PrefixPath, recipes.Name);            if (string.IsNullOrEmpty(recipeContent))            {                MessageBox.Show($"{recipes.PrefixPath}\\{recipes.Name} is empty, please confirm the file is valid.");                return;            }           // recipes.RecipeChamberType = "OriginChamber";            recipes.InitData(recipes.PrefixPath, recipes.Name, recipeContent, "PM1");            var windowManager = IoC.Get<IWindowManager>();            RecipeLoopSetViewModel recipeLoopSetViewModel = new RecipeLoopSetViewModel();            recipeLoopSetViewModel.StepNames = new ObservableCollection<ShowStep>(recipes.Steps.OrderBy(x => x.StepNo).Select(x => new ShowStep() { StepNo = x.StepNo, StepName = x.Name }).ToList());            if ((bool)(windowManager as WindowManager)?.ShowDialogWithTitle(recipeLoopSetViewModel, null, "Jump"))            {                InvokeClient.Instance.Service.DoOperation($"PM1.RecipeJumpStep", recipeLoopSetViewModel.SelectedIndex, recipeLoopSetViewModel.SelectedText.Replace("]","").Replace("[",""));            }        }        public void Hold()        {            if (!DialogBox.Confirm("Are you sure to hold current recipe?"))                return;            InvokeClient.Instance.Service.DoOperation($"PM1.RecipePause", "");        }        public void Release()        {            if (!DialogBox.Confirm("Are you sure to release current recipe?"))                return;            InvokeClient.Instance.Service.DoOperation($"PM1.RecipeContinue", "");        }        public void EmergencyAbort()        {            if (!DialogBox.Confirm("Are you sure to execute Abort?"))                return;            InvokeClient.Instance.Service.DoOperation("PM1.RecipeAbort");        }    }}
 |