| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 | 
							- using MECF.Framework.Common.CommonData;
 
- using MECF.Framework.Common.DataCenter;
 
- using MECF.Framework.Common.OperationCenter;
 
- using OpenSEMI.ClientBase;
 
- using SciChart.Core.Extensions;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Collections.ObjectModel;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows;
 
- using VirgoUI.Client.Models.Sys;
 
- namespace VirgoUI.Client.Models.PMs
 
- {
 
-     public interface ICalibrationTableViewModelParameter
 
-     {
 
-         List<CalibrationTableItem> Items { get; set; }
 
-     }
 
-     public class CalibrationTableItem
 
-     {
 
-         public string DisplayName { get; set; }
 
-         public string ItemTableScName { get; set; }
 
-         public string ItemTableDetailScName
 
-         {
 
-             get => ItemTableScName + "Detail";
 
-         }
 
-         public string ItemEnableScName { get; set; }
 
-     }
 
-     public class CalibrationTableViewModel : UiViewModelBase, ISupportMultipleSystem
 
-     {
 
-         public ICalibrationTableViewModelParameter CustomParameter { get; set; }
 
-         public string SystemName { get; set; }
 
-         public class NotifiableCalibrationTableItem : NotifiableItem
 
-         {
 
-             public string DisplayName { get; set; }
 
-             public float FeedbackValue { get; set; }
 
-             public float CalibrationValue { get; set; }
 
-         }
 
-         public ObservableCollection<CalibrationTableItem> CalibrationItems { get; set; }
 
-         public ObservableCollection<NotifiableCalibrationTableItem> TableData { get; set; }
 
-         public string FeedbackValue { get; set; }
 
-         public string CalibrationValue { get; set; }
 
-         private CalibrationTableItem _currentSelection;
 
-         public CalibrationTableItem CurrentSelection
 
-         {
 
-             get { return _currentSelection; }
 
-             set
 
-             {
 
-                 _currentSelection = value;
 
-                 ChangeSelection(_currentSelection);
 
-                 NotifyOfPropertyChange(nameof(CurrentSelection));
 
-             }
 
-         }
 
-         public CalibrationTableViewModel()
 
-         {
 
-             DisplayName = "Calibration Table ";
 
-             CalibrationItems = new ObservableCollection<CalibrationTableItem>();
 
-             TableData = new ObservableCollection<NotifiableCalibrationTableItem>();
 
-         }
 
-         protected override void OnInitialize()
 
-         {
 
-             base.OnInitialize();
 
-         }
 
-         protected override void OnActivate()
 
-         {
 
-             base.OnActivate();
 
-             if (CustomParameter != null && CustomParameter.Items != null && CalibrationItems.IsEmpty())
 
-             {
 
-                 foreach (var item in CustomParameter.Items)
 
-                 {
 
-                     CalibrationItems.Add(new CalibrationTableItem()
 
-                     {
 
-                         DisplayName = item.DisplayName,
 
-                         ItemEnableScName = item.ItemEnableScName,
 
-                         ItemTableScName = item.ItemTableScName,
 
-                     });
 
-                 }
 
-             }
 
-         }
 
-         protected void ChangeSelection(CalibrationTableItem item)
 
-         {
 
-             if (item == null)
 
-             {
 
-                 TableData.Clear();
 
-                 return;
 
-             }
 
-             var tableValues = QueryDataClient.Instance.Service.GetConfig(item.ItemTableScName);
 
-             if (tableValues == null)
 
-                 return;
 
-             var scValue = (string)tableValues;
 
-             string[] items = scValue.Split(';');
 
-             var tableData = new ObservableCollection<NotifiableCalibrationTableItem>();
 
-             for (int i = 0; i < items.Length; i++)
 
-             {
 
-                 if (items.Length > i)
 
-                 {
 
-                     string itemValue = items[i];
 
-                     if (!string.IsNullOrEmpty(itemValue))
 
-                     {
 
-                         string[] pairValue = itemValue.Split('#');
 
-                         if (pairValue.Length == 2)
 
-                         {
 
-                             if (float.TryParse(pairValue[0], out float rangeItem1)
 
-                                 && float.TryParse(pairValue[1], out float rangeItem2))
 
-                             {
 
-                                 tableData.Add(new NotifiableCalibrationTableItem()
 
-                                 {
 
-                                     FeedbackValue = rangeItem1,
 
-                                     CalibrationValue = rangeItem2,
 
-                                 });
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             TableData = new ObservableCollection<NotifiableCalibrationTableItem>(tableData.OrderBy(x => x.FeedbackValue).ToList());
 
-             NotifyOfPropertyChange(nameof(TableData));
 
-         }
 
-         public void Save()
 
-         {
 
-             if (CurrentSelection == null)
 
-                 return;
 
-             string data = "";
 
-             foreach (var item in TableData)
 
-             {
 
-                 data += $"{item.FeedbackValue}#{item.CalibrationValue};";
 
-             }
 
-             InvokeClient.Instance.Service.DoOperation("System.SetConfig", CurrentSelection.ItemTableScName, data);
 
-             Reload();
 
-         }
 
-         public void Cancel()
 
-         {
 
-             Reload();
 
-         }
 
-         private void Reload()
 
-         {
 
-             ChangeSelection(CurrentSelection);
 
-         }
 
-         public void Add()
 
-         {
 
-             if (string.IsNullOrEmpty(FeedbackValue) || string.IsNullOrEmpty(CalibrationValue))
 
-             {
 
-                 MessageBox.Show("Input value is empty");
 
-                 return;
 
-             }
 
-             if (!float.TryParse(FeedbackValue, out float feedback) ||
 
-                 !float.TryParse(CalibrationValue, out float calibrationValue))
 
-             {
 
-                 MessageBox.Show("Input value not valid");
 
-                 return;
 
-             }
 
-             FeedbackValue = "";
 
-             CalibrationValue = "";
 
-             NotifyOfPropertyChange(nameof(FeedbackValue));
 
-             NotifyOfPropertyChange(nameof(CalibrationValue));
 
-             TableData.Add(new NotifiableCalibrationTableItem()
 
-             {
 
-                 DisplayName = CurrentSelection.DisplayName,
 
-                 FeedbackValue = feedback,
 
-                 CalibrationValue = calibrationValue,
 
-             });
 
-         }
 
-         public void DeleteItem(NotifiableCalibrationTableItem item)
 
-         {
 
-             TableData.Remove(item);
 
-         }
 
-     }
 
- }
 
 
  |