using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
using MECF.Framework.UI.Client.ClientBase;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using FurnaceUI.Models;
using FurnaceUI.Views.Recipes;
namespace FurnaceUI.Views.Editors
{
    public class RecipeWaferChargeRuleViewModel : FurnaceUIViewModelBase
    {
        public RecipeDataLayout CurrentRecipe { get; set; } = new RecipeDataLayout();
        public RecipeLayoutEntityNormal NormalEntity { get; set; }
        public bool IsLeaveAsChecked { get; set; }
        public bool IsPackWholeChecked { get; set; }
        public bool IsMoveChecked { get; set; }
        public bool IsDoNotMoveChecked { get; set; }
        public bool IsWhenCassetteLeaveAsChecked { get; set; }
        public bool IsWhenCassetteSupplyEDChecked { get; set; }
        public bool IsWhenCassetteAbortWhenShortChecked { get; set; }
        public bool IsWhenWaferLeaveAsChecked { get; set; }
        public bool IsWhenWaferSupplyEDChecked { get; set; }
        public bool IsWhenWaferAbortWhenShortChecked { get; set; }
        public bool IsWhenEDLeaveAsChecked { get; set; }
        public bool IsWhenEDAbortWhenErrorChecked { get; set; }
        public bool IsWhenEDWarningAndContinueChecked { get; set; }
        public bool IsRuleOfSpaceLeaveAsChecked { get; set; }
        public bool IsRuleOfSpaceSupplyEDChecked { get; set; }
        public bool IsEnable => CGlobal.RecipeLayoutEditViewEnable;//是否是View模式
        protected override void OnInitialize()
        {
            base.OnInitialize();
            IsLeaveAsChecked = NormalEntity.WhenPWaferShort == "LeaveAs" || string.IsNullOrEmpty(NormalEntity.WhenPWaferShort);
            IsPackWholeChecked = !IsLeaveAsChecked;
            IsDoNotMoveChecked = NormalEntity.SDRule == "DonotMove" || string.IsNullOrEmpty(NormalEntity.SDRule);
            IsMoveChecked = !IsDoNotMoveChecked;
            IsRuleOfSpaceLeaveAsChecked = NormalEntity.RuleOfSpaceInBoat == "LeaveAs" || string.IsNullOrEmpty(NormalEntity.RuleOfSpaceInBoat);
            IsRuleOfSpaceSupplyEDChecked = !IsRuleOfSpaceLeaveAsChecked;
            this.ThreeChecked();
        }
        public void EndEdit()
        {
            NormalEntity.WhenPWaferShort = IsLeaveAsChecked ? "LeaveAs" : "PackWholeP+M";
            NormalEntity.SDRule = IsMoveChecked ? "Move" : "DonotMove";
            NormalEntity.RuleOfSpaceInBoat = IsRuleOfSpaceLeaveAsChecked ? "LeaveAs" : "SupplyED";
            this.ThreeChose();
            ((Window)GetView())?.Close();
        }
        /// 
        /// 三个选项选一保存
        /// 
        public void ThreeChose()
        {
            if (IsWhenCassetteLeaveAsChecked)
            {
                NormalEntity.WhenCassetteInBatchAreShort = "LeaveAs";
            }
            if (IsWhenCassetteSupplyEDChecked)
            {
                NormalEntity.WhenCassetteInBatchAreShort = "SupplyED";
            }
            if (IsWhenCassetteAbortWhenShortChecked)
            {
                NormalEntity.WhenCassetteInBatchAreShort = "AbortWhenShort";
            }
            if (IsWhenWaferLeaveAsChecked)
            {
                NormalEntity.WhenWaferInCassetteAreShort = "LeaveAs";
            }
            if (IsWhenWaferSupplyEDChecked)
            {
                NormalEntity.WhenWaferInCassetteAreShort = "SupplyED";
            }
            if (IsWhenWaferAbortWhenShortChecked)
            {
                NormalEntity.WhenWaferInCassetteAreShort = "AbortWhenShort";
            }
            if (IsWhenEDLeaveAsChecked)
            {
                NormalEntity.WhenEDAreShort = "LeaveAs";
            }
            if (IsWhenEDAbortWhenErrorChecked)
            {
                NormalEntity.WhenEDAreShort = "AbortWhenError";
            }
            if (IsWhenEDWarningAndContinueChecked)
            {
                NormalEntity.WhenEDAreShort = "WarningAndContinue";
            }
        }
        /// 
        /// 显示之前选中的值
        /// 
        public void ThreeChecked()
        {
            IsWhenCassetteLeaveAsChecked = NormalEntity.WhenCassetteInBatchAreShort == "LeaveAs" || string.IsNullOrEmpty(NormalEntity.WhenCassetteInBatchAreShort);
            IsWhenCassetteSupplyEDChecked = NormalEntity.WhenCassetteInBatchAreShort == "SupplyED";
            IsWhenCassetteAbortWhenShortChecked = NormalEntity.WhenCassetteInBatchAreShort == "AbortWhenShort";
            IsWhenWaferLeaveAsChecked = NormalEntity.WhenWaferInCassetteAreShort == "LeaveAs" || string.IsNullOrEmpty(NormalEntity.WhenWaferInCassetteAreShort);
            IsWhenWaferSupplyEDChecked = NormalEntity.WhenWaferInCassetteAreShort == "SupplyED";
            IsWhenWaferAbortWhenShortChecked = NormalEntity.WhenWaferInCassetteAreShort == "AbortWhenShort";
            IsWhenEDLeaveAsChecked = NormalEntity.WhenEDAreShort == "LeaveAs" || string.IsNullOrEmpty(NormalEntity.WhenEDAreShort);
            IsWhenEDAbortWhenErrorChecked = NormalEntity.WhenEDAreShort == "AbortWhenError";
            IsWhenEDWarningAndContinueChecked = NormalEntity.WhenEDAreShort == "WarningAndContinue";
        }
        public void Close()
        {
            ((Window)GetView())?.Close();
        }
    }
}