using Aitex.Core.Util; using MECF.Framework.Common.OperationCenter; using System; using VirgoUI.Client.Models.Sys; namespace VirgoUI.Client.Models.Operate.FA { public class FAViewModel : UiViewModelBase { private int MenuPermission; public enum CommunicationState { Disabled, Enabled, EnabledNotCommunicating, EnabledCommunicating, WaitCRA, WaitDelay, WaitCRFromHost, } public enum ControlState { Unknown, EquipmentOffline, AttemptOnline, HostOffline, OnlineLocal, OnlineRemote, } [Subscription("System.CommunicationStatus")] public string HostCommunicationStatus { get; set; } [Subscription("System.ControlStatus")] public string HostControlStatus { get; set; } [Subscription("System.SpoolingState")] public int SpoolingState { get; set; } [Subscription("System.SpoolingActual")] public string SpoolingActual { get; set; } [Subscription("System.SpoolingTotal")] public string SpoolingTotal { get; set; } [Subscription("System.SpoolingFullTime")] public string SpoolingFullTime { get; set; } [Subscription("System.SpoolingStartTime")] public string SpoolingStartTime { get; set; } [Subscription("System.IsSpoolingEnable")] public bool IsSpoolingEnable { get; set; } public CommunicationState FACommunicationState { get { return string.IsNullOrEmpty(HostCommunicationStatus) ? CommunicationState.Disabled : (CommunicationState)Enum.Parse(typeof(CommunicationState), HostCommunicationStatus); } } public ControlState FAControlState { get { return string.IsNullOrEmpty(HostControlStatus) ? ControlState.Unknown : (ControlState)Enum.Parse(typeof(ControlState), HostControlStatus); } } public bool IsEnableEnable { get { return FACommunicationState == CommunicationState.Disabled; } } public bool IsEnableDisable { get { return FACommunicationState != CommunicationState.Disabled; } } //Unknown, //EquipmentOffline, //AttemptOnline, //HostOffline, //OnlineLocal, //OnlineRemote, public bool IsEnableOnline { get { return FAControlState == ControlState.Unknown || FAControlState == ControlState.EquipmentOffline; } } public bool IsEnableOffline { get { return FAControlState == ControlState.Unknown || FAControlState != ControlState.EquipmentOffline; } } public bool IsEnableLocal { get { return FAControlState == ControlState.OnlineRemote; } } public bool IsEnableRemote { get { return FAControlState == ControlState.OnlineLocal; } } public bool IsEnableEnableSpooling { get { return !IsSpoolingEnable;//SpoolingState == FASpoolingState.Inactive.ToString(); } } public bool IsEnableDisableSpooling { get { return IsSpoolingEnable;// SpoolingState == FASpoolingState.Active.ToString(); } } public FAViewModel() { MenuPermission = ClientApp.Instance.GetPermission("FA"); this.DisplayName = "FA"; } protected override void OnInitialize() { base.OnInitialize(); } public void FaEnable() { if (MenuPermission != 3) return; InvokeClient.Instance.Service.DoOperation("System.FACommand","FAEnable"); } public void FaDisable() { if (MenuPermission != 3) return; InvokeClient.Instance.Service.DoOperation("System.FACommand", "FADisable"); } public void FaOnline() { if (MenuPermission != 3) return; InvokeClient.Instance.Service.DoOperation("System.FACommand", "FAOnline"); } public void FaOffline() { if (MenuPermission != 3) return; InvokeClient.Instance.Service.DoOperation("System.FACommand", "FAOffline"); } public void FaLocal() { if (MenuPermission != 3) return; InvokeClient.Instance.Service.DoOperation("System.FACommand", "FALocal"); } public void FaRemote() { if (MenuPermission != 3) return; InvokeClient.Instance.Service.DoOperation("System.FACommand", "FARemote"); } public void FaEnableSpooling() { if (MenuPermission != 3) return; InvokeClient.Instance.Service.DoOperation("System.FACommand", "FAEnableSpooling"); } public void FaDisableSpooling() { if (MenuPermission != 3) return; InvokeClient.Instance.Service.DoOperation("System.FACommand", "FADisableSpooling"); } } }