using Caliburn.Micro; using Caliburn.Micro.Core; using Aitex.Core.Common.DeviceData; using Aitex.Core.UI.ControlDataContext; using Aitex.Core.Util; using MECF.Framework.Common.DataCenter; using MECF.Framework.Common.OperationCenter; using FurnaceUI.Models; using FurnaceUI.Views.Editors; using System.Collections.ObjectModel; using System.Collections.Generic; using System.Threading.Tasks; using System.Reflection; using System; using Aitex.Core.RT.Log; using System.Linq; using System.Windows; namespace FurnaceUI.Views.Maintenances { public class FIMSSensorViewModel : FurnaceUIViewModelBase { public bool IsManagerPermission { get => this.Permission == 3; } public bool IsSystemStaus => (RtStatus != "AutoRunning"); [Subscription("FIMS1.Status")] public string FIMS1Status { get; set; } [Subscription("FIMS2.Status")] public string FIMS2Status { get; set; } [Subscription("Rt.Status")] public string RtStatus { get; set; } [Subscription("FIMS1.IsOnline")] public bool FIMS1IsOnline { get; set; } [Subscription("FIMS2.IsOnline")] public bool FIMS2IsOnline { get; set; } public bool IsFIMS1OnlineButtonEnable => !FIMS1IsOnline; public bool IsFIMS2OnlineButtonEnable => !FIMS2IsOnline; public bool IsFIMS1OfflineButtonEnable => FIMS1IsOnline && RtStatus != "AutoRunning"; public bool IsFIMS2OfflineButtonEnable => FIMS2IsOnline && RtStatus != "AutoRunning"; public FIMSSensorViewModel() { } public void Home(object target) { InvokeClient.Instance.Service.DoOperation($"{target}.Home"); } public void Load(object target) { InvokeClient.Instance.Service.DoOperation($"{target}.Load"); } public void Unload(object target) { InvokeClient.Instance.Service.DoOperation($"{target}.Unload"); } public void SetAlarmReset(object target) { InvokeClient.Instance.Service.DoOperation($"{target?.ToString().Split('.').ToList().LastOrDefault()}.Reset"); } public void SetOnline(object target) { InvokeClient.Instance.Service.DoOperation($"{target}.SetOnline"); } public void SetOffline(object target) { InvokeClient.Instance.Service.DoOperation($"{target}.SetOffline"); } public void ClosedCmd() { (GetView() as Window).Close(); } } }