DisplayHistroyHelper.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. namespace ProximaAnalizer.Helpers;
  2. public partial class DisplayHistroyHelper1(int key, int value, string[] keywords) : ObservableObject
  3. {
  4. [ObservableProperty]
  5. private ObservableDictionary<string, object> _Data = [];
  6. public Dictionary<string, string> Keys { get; } = [];
  7. public void UpdateData(List<dynamic>? data)
  8. {
  9. if (data is null)
  10. return;
  11. if (data.FirstOrDefault() is not IDictionary<string, object> source)
  12. return;
  13. App.Current.Dispatcher?.Invoke(() =>
  14. {
  15. foreach (var data in source)
  16. {
  17. string[] keys = data.Key.Split('.');
  18. if (keys.Length <= value)
  19. continue;
  20. if (keywords.Any(t => keys[key].StartsWith(t)))
  21. {
  22. this.Keys[keys[value]] = data.Key;
  23. this.Data[keys[value]] = data.Value;
  24. }
  25. }
  26. });
  27. }
  28. public void Clear()
  29. {
  30. this.Data ??= [];
  31. this.Data.Clear();
  32. }
  33. }
  34. public partial class DisplayHistroyHelper2(int key, int value, string keyWord) : ObservableObject
  35. {
  36. [ObservableProperty]
  37. private ObservableDictionary<string, ObservableDictionary<string, object>> _Data = [];
  38. public Dictionary<string, Dictionary<string, string>> Keys { get; } = [];
  39. public void UpdateData(List<dynamic>? data)
  40. {
  41. if (data is null)
  42. return;
  43. if (data.FirstOrDefault() is not IDictionary<string, object> source)
  44. return;
  45. App.Current.Dispatcher?.Invoke(() =>
  46. {
  47. foreach (var data in source)
  48. {
  49. string[] keys = data.Key.Split('.');
  50. if (keys.Length <= value)
  51. continue;
  52. if (!keys[1].StartsWith(keyWord))
  53. continue;
  54. if (!this.Data.TryGetValue(keys[key], out var output) || output is null)
  55. {
  56. output = [];
  57. this.Data[keys[key]] = output;
  58. this.Keys[keys[key]] = [];
  59. }
  60. output[keys[value]] = data.Value;
  61. this.Keys[keys[key]][keys[value]] = data.Key;
  62. }
  63. });
  64. }
  65. public void Clear()
  66. {
  67. this.Data ??= [];
  68. this.Data.Clear();
  69. }
  70. }
  71. public partial class DisplayHistoryHelperSensor : ObservableObject
  72. {
  73. [ObservableProperty]
  74. private ObservableDictionary<string, object> _Data = [];
  75. public Dictionary<string, string> Keys { get; } = [];
  76. public void UpdateData(List<dynamic>? data)
  77. {
  78. if (data is null)
  79. return;
  80. if (data.FirstOrDefault() is not IDictionary<string, object> source)
  81. return;
  82. }
  83. }