diff --git a/src/paradigm-ehb.CommandCenter.Core/Protos/Resources/V2/resources.proto b/src/paradigm-ehb.CommandCenter.Core/Protos/Resources/V2/resources.proto index 8508ae9..5b76427 100644 --- a/src/paradigm-ehb.CommandCenter.Core/Protos/Resources/V2/resources.proto +++ b/src/paradigm-ehb.CommandCenter.Core/Protos/Resources/V2/resources.proto @@ -49,8 +49,8 @@ message Cpu { * @return total memory on system, available memory on system * */ message Memory { - string total = 1; - string free = 2; + uint64 total = 1; + uint64 free = 2; } /** diff --git a/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/ProcessesPage.xaml.cs b/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/ProcessesPage.xaml.cs index 90c43b4..2d4cab2 100644 --- a/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/ProcessesPage.xaml.cs +++ b/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/ProcessesPage.xaml.cs @@ -117,7 +117,7 @@ private void OnFilterChanged(object sender, RoutedEventArgs args) IEnumerable filtered = allProcesses.Where(process => Filter(process)); Remove_NonMatching(filtered); AddBack_Processes(filtered); - Order_services(); + Order_processes(); } private bool Filter(ProcessInfo process) @@ -155,6 +155,10 @@ private async void RefreshButton_Click(object sender, RoutedEventArgs e) await ClearAllProcesses(); // Refresh is user-initiated; use non-cancellable token await LoadAllProcesses(CancellationToken.None); + IEnumerable filtered = allProcesses.Where(process => Filter(process)); + Remove_NonMatching(filtered); + AddBack_Processes(filtered); + Order_processes(); } private async void ProcessTerminate_Click(object sender, RoutedEventArgs e) @@ -560,7 +564,7 @@ await DispatcherQueue.EnqueueAsync(() => { ProcessState.Unspecified => (SolidColorBrush)Application.Current.Resources["SystemFillColorNeutralBrush"], ProcessState.Running => (SolidColorBrush)Application.Current.Resources["SystemFillColorAttentionBrush"], - ProcessState.Sleeping => (SolidColorBrush)Application.Current.Resources["SystemFillColorCautionBrush"], + ProcessState.Sleeping => (SolidColorBrush)Application.Current.Resources["SystemFillColorSuccessBrush"], ProcessState.Stopped => (SolidColorBrush)Application.Current.Resources["SystemFillColorCriticalBrush"], _ => (SolidColorBrush)Application.Current.Resources["SystemFillColorCriticalBackgroundBrush"], }; @@ -579,16 +583,16 @@ await DispatcherQueue.EnqueueAsync(() => } await DispatcherQueue.EnqueueAsync(() => { - Order_services(); + Order_processes(); }); } public void OnOrderChanged(object sender, SelectionChangedEventArgs args) { - Order_services(); + Order_processes(); } - private void Order_services() + private void Order_processes() { string order = OrderByCombo?.SelectedValue as string ?? "State"; diff --git a/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/ServicesPage.xaml.cs b/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/ServicesPage.xaml.cs index c68ca42..c7e8d66 100644 --- a/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/ServicesPage.xaml.cs +++ b/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/ServicesPage.xaml.cs @@ -86,6 +86,10 @@ private async void RefreshButton_Click(object sender, RoutedEventArgs e) await ClearAllServices(); await DispatcherQueue.EnqueueAsync(() => LoadingProgressRing.IsActive = true); await LoadAllServices(); + IEnumerable filtered = allServices.Where(service => Filter(service)); + Remove_NonMatching(filtered); + AddBack_Services(filtered); + Order_Services(); await DispatcherQueue.EnqueueAsync(() => LoadingProgressRing.IsActive = false); } diff --git a/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/srvOverview.xaml b/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/srvOverview.xaml index fa4de9e..a278bb1 100644 --- a/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/srvOverview.xaml +++ b/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/srvOverview.xaml @@ -34,7 +34,7 @@ - + diff --git a/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/srvOverview.xaml.cs b/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/srvOverview.xaml.cs index b33291d..ca62918 100644 --- a/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/srvOverview.xaml.cs +++ b/src/paradigm-ehb.CommandCenter.WinUI/srvMgnt/Views/srvOverview.xaml.cs @@ -50,9 +50,17 @@ private async void updatePage() Processes.Text = string.Format("{0} running", data.Resources.Processes.Count()); - var totalRamGB = Math.Floor(float.Parse(data.Resources.Memory.Total) / 1024 / 1024); - var usedRam = float.Parse(data.Resources.Memory.Total) - float.Parse(data.Resources.Memory.Free); - var usedRamPercentage = (usedRam / float.Parse(data.Resources.Memory.Total)) * 100; + ulong cpuTotalTime = data.Resources.Cpu.TotalTime; + ulong cpuIdleTime = data.Resources.Cpu.IdleTime; + + double cpuUsagePercentage = ((double)(cpuTotalTime - cpuIdleTime) / (double)cpuTotalTime) * 100; + + CpuUsageBar.Progress = cpuUsagePercentage; + CpuUsagePercent.Text = string.Format("{0:F2}%", cpuUsagePercentage); + + var totalRamGB = Math.Floor((decimal)data.Resources.Memory.Total / 1024 / 1024); + ulong usedRam = data.Resources.Memory.Total - data.Resources.Memory.Free; + double usedRamPercentage = ((double)usedRam / (double)data.Resources.Memory.Total) * 100; RamUsageBar.Progress = usedRamPercentage; RamUsagePercent.Text = string.Format("{0:F2}%", usedRamPercentage);