DashboardPage.xaml.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. using Agent.Services;
  2. using log4net;
  3. using System.Windows.Controls;
  4. using System.Windows;
  5. using System.Windows.Media;
  6. namespace Agent.Views
  7. {
  8. /// <summary>
  9. /// Interaction logic for DashboardPage.xaml
  10. /// </summary>
  11. public partial class DashboardPage : Page
  12. {
  13. private static readonly ILog log = LogManager.GetLogger(typeof(DashboardPage));
  14. private readonly DriveService _driveService = new DriveService();
  15. private readonly PolicyService _policyService = new PolicyService();
  16. private readonly SolidColorBrush _normalHeaderColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#596470"));
  17. private readonly SolidColorBrush _normalBodyColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6C7886"));
  18. private readonly SolidColorBrush _okHeaderColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#377614"));
  19. private readonly SolidColorBrush _okBodyColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#3f8618"));
  20. private readonly SolidColorBrush _warningHeaderColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b6441f"));
  21. private readonly SolidColorBrush _warningBodyColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#c54b24"));
  22. public DashboardPage()
  23. {
  24. InitializeComponent();
  25. LoadStatus();
  26. }
  27. public void LoadStatus()
  28. {
  29. LoadDriveStatus();
  30. LoadStorageStatus();
  31. LoadBackupStatus();
  32. LoadMonitoringStatus();
  33. }
  34. /// <summary>
  35. /// 디스크정보 초기화
  36. /// </summary>
  37. public void LoadDriveStatus()
  38. {
  39. var totalDrive = _driveService.GetTotalStat();
  40. DriveUsingSpaceTextBox.Text = totalDrive.UsedSize;
  41. DriveFreeSpaceTextBox.Text = totalDrive.FreeSize;
  42. if (null == totalDrive)
  43. {
  44. DriveHeader.Background = _warningHeaderColor;
  45. DriveBody.Background = _warningBodyColor;
  46. return;
  47. }
  48. DriveHeader.Background = _normalHeaderColor;
  49. DriveBody.Background = _normalBodyColor;
  50. }
  51. /// <summary>
  52. /// 서버 스토리지정보 초기화(DB연결 상태)
  53. /// </summary>
  54. public void LoadStorageStatus()
  55. {
  56. if (!"OK".Equals(Application.Current.Properties["db_status"]))
  57. {
  58. StorageTextBox.Text = "비정상";
  59. StorageHeader.Background = _warningHeaderColor;
  60. StorageBody.Background = _warningBodyColor;
  61. return;
  62. }
  63. StorageTextBox.Text = "정상";
  64. StorageHeader.Background = _okHeaderColor;
  65. StorageBody.Background = _okBodyColor;
  66. }
  67. /// <summary>
  68. /// 파일감시정보 초기화(백업스케줄 동작여부)
  69. /// </summary>
  70. public void LoadMonitoringStatus()
  71. {
  72. if ("OK".Equals(Application.Current.Properties["backup_status"]))
  73. {
  74. MonitorTextBox.Text = "정상";
  75. MonitorHeader.Background = _okHeaderColor;
  76. MonitorBody.Background = _okBodyColor;
  77. return;
  78. }
  79. }
  80. /// <summary>
  81. /// 백업현황 초기화(연결된 백업파일, 마지막 동기화시간, 백업실패 파일)
  82. /// </summary>
  83. public void LoadBackupStatus()
  84. {
  85. var backup = _policyService.GetLastMonitoring();
  86. if (null == backup)
  87. {
  88. return;
  89. }
  90. SyncTextBox.Text = $"{backup.End_Date.ToShortDateString()}\r\n{backup.End_Date.ToShortTimeString()}";
  91. SyncHeader.Background = _okHeaderColor;
  92. SyncBody.Background = _okBodyColor;
  93. SuccessTextBox.Text = 0 < backup.Success_Count ? $"{string.Format("{0:#,###}", backup.Success_Count)}개" : "0개";
  94. SuccessHeader.Background = 0 < backup.Success_Count ? _okHeaderColor : _normalHeaderColor;
  95. SuccessBody.Background = 0 < backup.Success_Count ? _okBodyColor : _normalBodyColor;
  96. FailTextBox.Text = 0 < backup.Fail_Count ? $"{string.Format("{0:#,###}", backup.Fail_Count)}개" : "0개";
  97. FailHeader.Background = 0 < backup.Fail_Count ? _warningHeaderColor : _okHeaderColor;
  98. FailBody.Background = 0 < backup.Fail_Count ? _warningBodyColor : _okBodyColor;
  99. }
  100. private void Success_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  101. {
  102. if (2 == e.ClickCount)
  103. {
  104. if (Window.GetWindow(this) is MainWindow window)
  105. {
  106. window.ActivePolicyMenu();
  107. }
  108. }
  109. }
  110. private void Fail_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
  111. {
  112. if (2 == e.ClickCount)
  113. {
  114. if (Window.GetWindow(this) is MainWindow window)
  115. {
  116. window.ActiveReportMenu();
  117. }
  118. }
  119. }
  120. }
  121. }