using MECF.Framework.Common.OperationCenter;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace PunkHPX8_Themes.UserControls
{
    /// 
    /// PlatingCellUIControl.xaml 的交互逻辑
    /// 
    public partial class PlatingCellUIControl : UserControl
    {
        public PlatingCellUIControl()
        {
            InitializeComponent();
        }
        public static readonly DependencyProperty ModuleNameProperty = DependencyProperty.Register(
         "ModuleName", typeof(string), typeof(PlatingCellUIControl),
         new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// 模块名称
        /// 
        public string ModuleName
        {
            get
            {
                return (string)this.GetValue(ModuleNameProperty);
            }
            set
            {
                this.SetValue(ModuleNameProperty, value);
            }
        }
        public static readonly DependencyProperty ReservoirNameProperty = DependencyProperty.Register(
        "ReservoirName", typeof(string), typeof(PlatingCellUIControl),
            new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// ReservoirName
        /// 
        public string ReservoirName
        {
            get
            {
                return (string)this.GetValue(ReservoirNameProperty);
            }
            set
            {
                this.SetValue(ReservoirNameProperty, value);
            }
        }
        public static readonly DependencyProperty CCRValveProerty = DependencyProperty.Register(
            "CCRValve", typeof(bool), typeof(PlatingCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// CCRValve
        /// 
        public bool CCRValve
        {
            get
            {
                return (bool)this.GetValue(CCRValveProerty);
            }
            set
            {
                this.SetValue(CCRValveProerty, value);
            }
        }
        public static readonly DependencyProperty RinseValveProerty = DependencyProperty.Register(
            "RinseValve", typeof(bool), typeof(PlatingCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// RinseValve
        /// 
        public bool RinseValve
        {
            get
            {
                return (bool)this.GetValue(RinseValveProerty);
            }
            set
            {
                this.SetValue(RinseValveProerty, value);
            }
        }
        public static readonly DependencyProperty CAIsolationValveProerty = DependencyProperty.Register(
            "CAIsolationValve", typeof(bool), typeof(PlatingCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// CAIsolationValve
        /// 
        public bool CAIsolationValve
        {
            get
            {
                return (bool)this.GetValue(CAIsolationValveProerty);
            }
            set
            {
                this.SetValue(CAIsolationValveProerty, value);
            }
        }
        public static readonly DependencyProperty ANIsolationValveProerty = DependencyProperty.Register(
            "ANIsolationValve", typeof(bool), typeof(PlatingCellUIControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// ANIsolationValve
        /// 
        public bool ANIsolationValve
        {
            get
            {
                return (bool)this.GetValue(ANIsolationValveProerty);
            }
            set
            {
                this.SetValue(ANIsolationValveProerty, value);
            }
        }
        public static readonly DependencyProperty IsLeftEnableProperty = DependencyProperty.Register(
           "IsLeftEnable", typeof(bool), typeof(PlatingCellUIControl), new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.AffectsRender));
        /// 
        /// IsLeftEnable
        /// 
        public bool IsLeftEnable
        {
            get
            {
                return (bool)this.GetValue(IsLeftEnableProperty);
            }
            set
            {
                this.SetValue(IsLeftEnableProperty, value);
            }
        }
        private void OpenCCRValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.CCREnable");
        }
        private void CloseCCRValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.CCRDisable");
        }
        private void OpenRinseValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.RinseEnable");
        }
        private void CloseRinseValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ModuleName}.RinseDisable");
        }
        private void OpenCAIsolationValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ReservoirName}.CAIsolationOn");
        }
        private void CloseCAIsolationValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ReservoirName}.CAIsolationOff");
        }
        private void OpenANIsolationValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ReservoirName}.ANIsolationOn");
        }
        private void CloseANIsolationValve_Click(object sender, RoutedEventArgs e)
        {
            InvokeClient.Instance.Service.DoOperation($"{ReservoirName}.ANIsolationOff");
        }
    }
}