CtrlSvrs.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. using DevExpress.Mvvm.Native;
  2. using DevExpress.Utils.Html;
  3. using DevExpress.XtraEditors;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Data;
  8. using System.Drawing;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading;
  12. using System.Threading.Tasks;
  13. using System.Windows.Controls;
  14. using System.Windows.Documents;
  15. using System.Windows.Forms;
  16. using DW5S.App.EditForms;
  17. using DW5S.DTO;
  18. using DW5S.Repostory;
  19. using DW5S.Service;
  20. using DW5S.Entity;
  21. using Serilog;
  22. using DW5S.ViewModel;
  23. using DevExpress.XtraReports.Wizards;
  24. namespace DW5S.App.UserControl
  25. {
  26. public partial class CtrlSvrs : DevExpress.XtraEditors.XtraUserControl
  27. {
  28. List<SvrViewModel> list = new List<SvrViewModel>();
  29. public CtrlSvrs()
  30. {
  31. InitializeComponent();
  32. }
  33. private async void CtrlSvrs_Load(object sender, EventArgs e)
  34. {
  35. gridSvrs.UseDefault(list).UseGroup().UseRowNumber();
  36. gridSvrs.UseEdit();
  37. var linkEdit = new DevExpress.XtraEditors.Repository.RepositoryItemHyperLinkEdit();
  38. this.gridSvrs.RepositoryItems.Add(linkEdit);
  39. if (gridView1.Columns.Count > 0)
  40. {
  41. gridView1.Columns[nameof(SvrViewModel.SwaggerAddr)].ColumnEdit = linkEdit;
  42. gridView1.Columns[nameof(SvrViewModel.SwaggerAddr)].OptionsColumn.AllowEdit = true;
  43. }
  44. #region 模拟服务
  45. List<SvrViewModel> svrList = new List<SvrViewModel>();
  46. SvrViewModel svr1 = new SvrViewModel(EnumSvrType.AdCgSvr,"10001","http://192.168.1.1:8091", "http://192.168.1.1:8091/swagger/index.html", DateTime.Now);
  47. SvrViewModel svr2 = new SvrViewModel(EnumSvrType.CpuCgSvr, "10002", "http://192.168.1.2:8091", "http://192.168.1.2:8091/swagger/index.html", DateTime.Now);
  48. SvrViewModel svr3 = new SvrViewModel(EnumSvrType.GpuCgSvr, "10003", "http://192.168.1.3:8091", "http://192.168.1.3:8091/swagger/index.html", DateTime.Now);
  49. SvrViewModel svr4 = new SvrViewModel(EnumSvrType.CheckSvr, "10004", "http://192.168.1.4:8091", "http://192.168.1.4:8091/swagger/index.html", DateTime.Now);
  50. SvrViewModel svr5 = new SvrViewModel(EnumSvrType.X2D1NoRefTask, "10005", "http://192.168.1.5:8091", "http://192.168.1.5:8091/swagger/index.html", DateTime.Now);
  51. SvrViewModel svr6 = new SvrViewModel(EnumSvrType.X2D1RefTask, "10006", "http://192.168.1.6:8091", "http://192.168.1.6:8091/swagger/index.html", DateTime.Now);
  52. SvrViewModel svr7 = new SvrViewModel(EnumSvrType.X1D1CxTask, "10007", "http://192.168.1.7:8091", "http://192.168.1.7:8091/swagger/index.html", DateTime.Now);
  53. svrList.Add(svr1);
  54. svrList.Add(svr2);
  55. svrList.Add(svr3);
  56. svrList.Add(svr4);
  57. svrList.Add(svr5);
  58. svrList.Add(svr6);
  59. svrList.Add(svr7);
  60. this.list.AddRange(svrList);
  61. #endregion
  62. //this.list.AddRange(ServerContext.Instance.GetAll().To<List<SvrViewModel>>());
  63. gridView1.RefreshData();
  64. Messenger.Defalut.Sub<List<SvrViewModel>>("服务集合改变", RefreshSvr);
  65. var unitOfWork = IocContainer.UnitOfWork;
  66. var repsSys = unitOfWork.Of<SysSetings>();
  67. var settings = await repsSys.FirstOrDefaultAsync();
  68. if (settings != null)
  69. this.simpleLabelItem2.Text = $"如果服务无法注册到平台需要到平台所在设备允许防火墙通过平台端口{settings.HttpPort}";
  70. }
  71. private void RefreshSvr(List<SvrViewModel> items)
  72. {
  73. if (!this.IsHandleCreated || this.Disposing || this.IsDisposed) return;
  74. try
  75. {
  76. var listCopy = list.Skip(0).ToList();
  77. foreach (var item in listCopy)
  78. {
  79. var find = items.Find(p => p.BaseHttpAddr == item.BaseHttpAddr);
  80. if (find == null)
  81. {
  82. list.Remove(item);
  83. }
  84. }
  85. foreach (var item in items)
  86. {
  87. var find = list.Find(p => p.BaseHttpAddr == item.BaseHttpAddr);
  88. if (find == null)
  89. {
  90. list.Add(new SvrViewModel(item.SvrType, item.SvrID, item.BaseHttpAddr, item.SwaggerAddr, item.ReportTime));
  91. }
  92. else
  93. {
  94. find.BaseHttpAddr = item.BaseHttpAddr;
  95. find.SwaggerAddr = item.SwaggerAddr;
  96. find.SvrType = item.SvrType;
  97. find.SvrID = item.SvrID;
  98. find.ReportTime = item.ReportTime;
  99. }
  100. }
  101. this.BeginInvoke(new Action(() =>
  102. {
  103. gridView1.RefreshData();
  104. }));
  105. }
  106. catch (Exception ex)
  107. {
  108. IocContainer.Logger.Error(ex,"处理服务状态上报异常");
  109. }
  110. }
  111. protected override void Dispose(bool disposing)
  112. {
  113. Messenger.Defalut.UnSub<List<SvrViewModel>>("服务集合改变", RefreshSvr);
  114. if (disposing && (components != null))
  115. {
  116. components.Dispose();
  117. }
  118. base.Dispose(disposing);
  119. }
  120. }
  121. }