| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Collections.ObjectModel;
 
- using System.Data;
 
- using System.Linq;
 
- using System.Windows;
 
- using Aitex.Core.RT.Log;
 
- using MECF.Framework.Common.CommonData;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.OperationCenter;
 
- using MECF.Framework.UI.Client.ClientBase;
 
- using OpenSEMI.ClientBase;
 
- using SciChart.Core.Extensions;
 
- namespace FurnaceUI.Views.Maintenances
 
- {
 
-     public class StatsDataListItem : NotifiableItem
 
-     {
 
-         public string Name { get; set; }
 
-         public string Value { get; set; }
 
-         public string Description { get; set; }
 
-         public string Total { get; set; }
 
-         public string LastUpdateTime { get; set; }
 
-         public string LastResetTime { get; set; }
 
-         public string LastResetTotalTime { get; set; }
 
-         public string AlarmValue { get; set; }
 
-         public string AlarmValueSetPoint { get; set; }
 
-         public string WarningValue { get; set; }
 
-         public string WarningValueSetPoint { get; set; }
 
-         public bool AlarmEnable { get; set; }
 
-         public bool AlarmTextSaved { get; set; }
 
-         public bool WarningTextSaved { get; set; }
 
-         public bool IsVisible { get; set; }
 
-     }
 
-     public class StatisticsViewModel : UiViewModelBase
 
-     {
 
-         public bool IsPermission { get => this.Permission == 3; }
 
-         public ObservableCollection<StatsDataListItem> StatData { get; set; }
 
-         protected override void OnInitialize()
 
-         {
 
-             StatData = new ObservableCollection<StatsDataListItem>();
 
-             base.OnInitialize();
 
-         }
 
-         protected override void OnActivate()
 
-         {
 
-             base.OnActivate();
 
-         }
 
-         protected override void OnDeactivate(bool close)
 
-         {
 
-             base.OnDeactivate(close);
 
-         }
 
-         protected override void Poll()
 
-         {
 
-             try
 
-             {
 
-                 string sql = $"SELECT * FROM \"stats_data\" order by \"name\" ASC;";
 
-                 DataTable dbData = QueryDataClient.Instance.Service.QueryData(sql);
 
-                 Application.Current.Dispatcher.BeginInvoke(new Action(() =>
 
-                 {
 
-                     if (dbData == null || dbData.Rows.Count == 0)
 
-                         return;
 
-                     string[] clearedNameList = Array.ConvertAll<StatsDataListItem, string>(StatData.ToArray(), x => x.Name);
 
-                     List<string> removableList = new List<string>();
 
-                     if (clearedNameList.Length > 0)
 
-                         removableList = clearedNameList.ToList();
 
-                     for (int i = 0; i < dbData.Rows.Count; i++)
 
-                     {
 
-                         if (!dbData.Rows[i]["is_visible"].Equals(DBNull.Value) && !Convert.ToBoolean(dbData.Rows[i]["is_visible"].ToString()))
 
-                             continue;
 
-                         string name = dbData.Rows[i]["name"].ToString();
 
-                         removableList.RemoveIfContains(name);
 
-                         StatsDataListItem item = StatData.FirstOrDefault(x => x.Name == name);
 
-                         if (item == null)
 
-                         {
 
-                             item = new StatsDataListItem();
 
-                             item.Name = dbData.Rows[i]["name"].ToString();
 
-                             item.AlarmEnable = false;
 
-                             item.IsVisible = true;
 
-                             item.AlarmTextSaved = true;
 
-                             item.WarningTextSaved = true;
 
-                             item.AlarmValueSetPoint = dbData.Rows[i]["alarm_value"].ToString();
 
-                             item.WarningValueSetPoint = dbData.Rows[i]["warning_value"].ToString();
 
-                             StatData.Add(item);
 
-                         }
 
-                         item.Description = dbData.Rows[i]["description"].ToString();
 
-                         item.Value = dbData.Rows[i]["value"].ToString();
 
-                         item.Total = dbData.Rows[i]["total"].ToString();
 
-                         if (!dbData.Rows[i]["enable_alarm"].Equals(DBNull.Value))
 
-                             item.AlarmEnable = Convert.ToBoolean(dbData.Rows[i]["enable_alarm"].ToString());
 
-                         item.AlarmValue = dbData.Rows[i]["alarm_value"].ToString();
 
-                         item.WarningValue = dbData.Rows[i]["warning_value"].ToString();
 
-                         if (!dbData.Rows[i]["last_update_time"].Equals(DBNull.Value))
 
-                             item.LastUpdateTime = ((DateTime)dbData.Rows[i]["last_update_time"]).ToString("yyyy/MM/dd HH:mm:ss.fff");
 
-                         if (!dbData.Rows[i]["last_reset_time"].Equals(DBNull.Value))
 
-                             item.LastResetTime = ((DateTime)dbData.Rows[i]["last_reset_time"]).ToString("yyyy/MM/dd HH:mm:ss.fff");
 
-                         if (!dbData.Rows[i]["last_total_reset_time"].Equals(DBNull.Value))
 
-                             item.LastResetTotalTime = ((DateTime)dbData.Rows[i]["last_total_reset_time"]).ToString("yyyy/MM/dd HH:mm:ss.fff");
 
-                         item.InvokePropertyChanged(nameof(item.AlarmValue));
 
-                         item.InvokePropertyChanged(nameof(item.WarningValue));
 
-                         item.InvokePropertyChanged(nameof(item.Value));
 
-                         item.InvokePropertyChanged(nameof(item.Total));
 
-                         item.InvokePropertyChanged(nameof(item.LastUpdateTime));
 
-                         item.InvokePropertyChanged(nameof(item.LastResetTime));
 
-                         item.InvokePropertyChanged(nameof(item.LastResetTotalTime));
 
-                     }
 
-                     foreach (var name in removableList)
 
-                     {
 
-                         StatsDataListItem item = StatData.FirstOrDefault(x => x.Name == name);
 
-                         if (item != null)
 
-                             StatData.Remove(item);
 
-                     }
 
-                 }));
 
-             }
 
-             catch (Exception e)
 
-             {
 
-                 LOG.Write(e);
 
-             }
 
-         }
 
-         public void ResetValue(StatsDataListItem item)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("System.Stats.ResetValue", item.Name);
 
-         }
 
-         public void ResetEnableAlarm(StatsDataListItem item)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("System.Stats.EnableAlarm", item.Name, item.AlarmEnable);
 
-         }
 
-         public void SetAlarmValue(StatsDataListItem item)
 
-         {
 
-             if (string.IsNullOrEmpty(item.AlarmValueSetPoint) ||
 
-                 !int.TryParse(item.AlarmValueSetPoint, out int setValue))
 
-             {
 
-                 DialogBox.ShowWarning("Alarm value not valid");
 
-                 return;
 
-             }
 
-             InvokeClient.Instance.Service.DoOperation("System.Stats.SetAlarmValue", item.Name, setValue);
 
-             item.AlarmTextSaved = true;
 
-             item.InvokePropertyChanged(nameof(item.AlarmTextSaved));
 
-         }
 
-         public void SetWarningValue(StatsDataListItem item)
 
-         {
 
-             if (string.IsNullOrEmpty(item.WarningValueSetPoint) ||
 
-                 !int.TryParse(item.WarningValueSetPoint, out int setValue))
 
-             {
 
-                 DialogBox.ShowWarning("Warning value not valid");
 
-                 return;
 
-             }
 
-             InvokeClient.Instance.Service.DoOperation("System.Stats.SetWarningValue", item.Name, setValue);
 
-             item.WarningTextSaved = true;
 
-             item.InvokePropertyChanged(nameof(item.WarningTextSaved));
 
-         }
 
-         public void ResetTotalValue(StatsDataListItem item)
 
-         {
 
-             InvokeClient.Instance.Service.DoOperation("System.Stats.ResetTotalValue", item.Name);
 
-         }
 
-     }
 
- }
 
 
  |