using Agent.Services; using log4net; using System.Windows.Controls; using System.Windows; using System.Windows.Media; namespace Agent.Views { /// /// Interaction logic for DashboardPage.xaml /// public partial class DashboardPage : Page { private static readonly ILog log = LogManager.GetLogger(typeof(DashboardPage)); private readonly DriveService _driveService = new DriveService(); private readonly PolicyService _policyService = new PolicyService(); private readonly SolidColorBrush _normalHeaderColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#596470")); private readonly SolidColorBrush _normalBodyColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#6C7886")); private readonly SolidColorBrush _okHeaderColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#377614")); private readonly SolidColorBrush _okBodyColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#3f8618")); private readonly SolidColorBrush _warningHeaderColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b6441f")); private readonly SolidColorBrush _warningBodyColor = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#c54b24")); public DashboardPage() { InitializeComponent(); LoadStatus(); } public void LoadStatus() { LoadDriveStatus(); LoadStorageStatus(); LoadBackupStatus(); LoadMonitoringStatus(); } /// /// 디스크정보 초기화 /// public void LoadDriveStatus() { var totalDrive = _driveService.GetTotalStat(); DriveUsingSpaceTextBox.Text = totalDrive.UsedSize; DriveFreeSpaceTextBox.Text = totalDrive.FreeSize; if (null == totalDrive) { DriveHeader.Background = _warningHeaderColor; DriveBody.Background = _warningBodyColor; return; } DriveHeader.Background = _normalHeaderColor; DriveBody.Background = _normalBodyColor; } /// /// 서버 스토리지정보 초기화(DB연결 상태) /// public void LoadStorageStatus() { if (!"OK".Equals(Application.Current.Properties["db_status"])) { StorageTextBox.Text = "비정상"; StorageHeader.Background = _warningHeaderColor; StorageBody.Background = _warningBodyColor; return; } StorageTextBox.Text = "정상"; StorageHeader.Background = _okHeaderColor; StorageBody.Background = _okBodyColor; } /// /// 파일감시정보 초기화(백업스케줄 동작여부) /// public void LoadMonitoringStatus() { if ("OK".Equals(Application.Current.Properties["backup_status"])) { MonitorTextBox.Text = "정상"; MonitorHeader.Background = _okHeaderColor; MonitorBody.Background = _okBodyColor; return; } } /// /// 백업현황 초기화(연결된 백업파일, 마지막 동기화시간, 백업실패 파일) /// public void LoadBackupStatus() { var backup = _policyService.GetLastMonitoring(); if (null == backup) { return; } SyncTextBox.Text = $"{backup.End_Date.ToShortDateString()}\r\n{backup.End_Date.ToShortTimeString()}"; SyncHeader.Background = _okHeaderColor; SyncBody.Background = _okBodyColor; SuccessTextBox.Text = 0 < backup.Success_Count ? $"{string.Format("{0:#,###}", backup.Success_Count)}개" : "0개"; SuccessHeader.Background = 0 < backup.Success_Count ? _okHeaderColor : _normalHeaderColor; SuccessBody.Background = 0 < backup.Success_Count ? _okBodyColor : _normalBodyColor; FailTextBox.Text = 0 < backup.Fail_Count ? $"{string.Format("{0:#,###}", backup.Fail_Count)}개" : "0개"; FailHeader.Background = 0 < backup.Fail_Count ? _warningHeaderColor : _okHeaderColor; FailBody.Background = 0 < backup.Fail_Count ? _warningBodyColor : _okBodyColor; } private void Success_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (2 == e.ClickCount) { if (Window.GetWindow(this) is MainWindow window) { window.ActivePolicyMenu(); } } } private void Fail_MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (2 == e.ClickCount) { if (Window.GetWindow(this) is MainWindow window) { window.ActiveReportMenu(); } } } } }