forked from amkovkov/GranuSightSoftware2
refactor: View models
This commit is contained in:
@@ -4,6 +4,7 @@ using Microsoft.Extensions.Logging;
|
||||
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
|
||||
using Avalonia;
|
||||
using Avalonia.Threading;
|
||||
|
||||
using SkiaSharp;
|
||||
@@ -13,13 +14,13 @@ using LiveChartsCore.SkiaSharpView.Painting;
|
||||
using LiveChartsCore.Defaults;
|
||||
|
||||
using GSS2.Core.Hardware;
|
||||
using Avalonia;
|
||||
|
||||
namespace GSS2.UI.Core.ViewModels;
|
||||
|
||||
public partial class ResourcesViewModel : ViewModelBase, IDisposable
|
||||
{
|
||||
private bool _disposedValue;
|
||||
|
||||
private readonly ComputeResourcesService _computeResourcesService;
|
||||
private readonly ILogger<ResourcesViewModel> _logger;
|
||||
private readonly int _intervalMs = 500;
|
||||
@@ -29,26 +30,38 @@ public partial class ResourcesViewModel : ViewModelBase, IDisposable
|
||||
[ObservableProperty] private Rect _bounds;
|
||||
[ObservableProperty] private bool _isChartsColumnVisible;
|
||||
[ObservableProperty] private bool _isBarsColumnVisible;
|
||||
|
||||
[ObservableProperty] private ResourceChartViewModel _cpuUsageChartViewModel;
|
||||
[ObservableProperty] private ResourceChartViewModel _cpuTemperatureChartViewModel;
|
||||
[ObservableProperty] private ResourceChartViewModel _memoryUsageChartViewModel;
|
||||
|
||||
[ObservableProperty] private ResourceCpuUsageBarsViewModel _cpuUsageBarsViewModel;
|
||||
[ObservableProperty] private ResourceBarViewModel _cpuTemperatureBarViewModel;
|
||||
[ObservableProperty] private ResourceBarViewModel _memoryUsageBarViewModel;
|
||||
|
||||
public ResourcesViewModel(ComputeResourcesService computeResourcesService, ILogger<ResourcesViewModel> logger)
|
||||
public ResourcesViewModel(
|
||||
ILogger<ResourcesViewModel> logger,
|
||||
ILogger<ResourceCpuUsageBarsViewModel> resourceCpuUsageBarsViewModelLogger,
|
||||
ILogger<ResourceChartViewModel> resourceChartViewModelCpuUsageLogger,
|
||||
ILogger<ResourceChartViewModel> resourceChartViewModelCpuTemperatureLogger,
|
||||
ILogger<ResourceChartViewModel> resourceChartViewModelMemoryUsageLogger,
|
||||
ILogger<ResourceBarViewModel> resourceBarViewModelCpuUsageLogger,
|
||||
ILogger<ResourceBarViewModel> resourceBarViewModelCpu0UsageLogger,
|
||||
ILogger<ResourceBarViewModel> resourceBarViewModelCpu1UsageLogger,
|
||||
ILogger<ResourceBarViewModel> resourceBarViewModelCpu2UsageLogger,
|
||||
ILogger<ResourceBarViewModel> resourceBarViewModelCpu3UsageLogger,
|
||||
ILogger<ResourceBarViewModel> resourceBarViewModelCpuTemperatureLogger,
|
||||
ILogger<ResourceBarViewModel> resourceBarViewModelMemoryUsageLogger,
|
||||
ComputeResourcesService computeResourcesService
|
||||
)
|
||||
{
|
||||
_logger = logger;
|
||||
|
||||
_logger.LogInformation("Initialization");
|
||||
|
||||
_computeResourcesService = computeResourcesService;
|
||||
|
||||
ResourceChartViewModel CreateChartViewModel(string name, double minLimit, double maxLimit, double minStep)
|
||||
ResourceChartViewModel CreateChartViewModel(ILogger<ResourceChartViewModel> logger, string name, double minLimit, double maxLimit, double minStep)
|
||||
{
|
||||
return new ResourceChartViewModel(
|
||||
logger: logger,
|
||||
series:
|
||||
[
|
||||
new LineSeries<double>
|
||||
@@ -85,9 +98,10 @@ public partial class ResourcesViewModel : ViewModelBase, IDisposable
|
||||
]
|
||||
);
|
||||
}
|
||||
ResourceBarViewModel CreateBarViewModel(Func<LiveChartsCore.Kernel.ChartPoint<ObservableValue, LiveChartsCore.SkiaSharpView.Drawing.Geometries.DoughnutGeometry, LiveChartsCore.SkiaSharpView.Drawing.Geometries.LabelGeometry>, string> formater)
|
||||
ResourceBarViewModel CreateBarViewModel(ILogger<ResourceBarViewModel> logger, Func<LiveChartsCore.Kernel.ChartPoint<ObservableValue, LiveChartsCore.SkiaSharpView.Drawing.Geometries.DoughnutGeometry, LiveChartsCore.SkiaSharpView.Drawing.Geometries.LabelGeometry>, string> formater)
|
||||
{
|
||||
return new ResourceBarViewModel(
|
||||
logger: logger,
|
||||
series:
|
||||
[
|
||||
new PieSeries<ObservableValue>
|
||||
@@ -113,19 +127,20 @@ public partial class ResourcesViewModel : ViewModelBase, IDisposable
|
||||
);
|
||||
}
|
||||
|
||||
CpuUsageChartViewModel = CreateChartViewModel("Нагрузка ЦПУ, %", 0, 100, 10);
|
||||
CpuTemperatureChartViewModel = CreateChartViewModel("Температура ЦПУ, ℃", 0, 100, 10);
|
||||
MemoryUsageChartViewModel = CreateChartViewModel("Нагрузка ОЗУ, МБ", 0, 8000, 1000);
|
||||
CpuUsageChartViewModel = CreateChartViewModel(resourceChartViewModelCpuUsageLogger, "Нагрузка ЦПУ, %", 0, 100, 10);
|
||||
CpuTemperatureChartViewModel = CreateChartViewModel(resourceChartViewModelCpuTemperatureLogger, "Температура ЦПУ, ℃", 0, 100, 10);
|
||||
MemoryUsageChartViewModel = CreateChartViewModel(resourceChartViewModelMemoryUsageLogger, "Нагрузка ОЗУ, МБ", 0, 8000, 1000);
|
||||
|
||||
CpuUsageBarsViewModel = new ResourceCpuUsageBarsViewModel(
|
||||
CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %"),
|
||||
CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %"),
|
||||
CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %"),
|
||||
CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %"),
|
||||
CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} %")
|
||||
resourceCpuUsageBarsViewModelLogger,
|
||||
CreateBarViewModel(resourceBarViewModelCpuUsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %"),
|
||||
CreateBarViewModel(resourceBarViewModelCpu0UsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %"),
|
||||
CreateBarViewModel(resourceBarViewModelCpu1UsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %"),
|
||||
CreateBarViewModel(resourceBarViewModelCpu2UsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %"),
|
||||
CreateBarViewModel(resourceBarViewModelCpu3UsageLogger, value => $"{value.Model?.Value?.ToString("00.00")} %")
|
||||
);
|
||||
CpuTemperatureBarViewModel = CreateBarViewModel(value => $"{value.Model?.Value?.ToString("00.00")} ℃");
|
||||
MemoryUsageBarViewModel = CreateBarViewModel(value => $"{value.Model?.Value?.ToString("000.00")} МБ");
|
||||
CpuTemperatureBarViewModel = CreateBarViewModel(resourceBarViewModelCpuTemperatureLogger, value => $"{value.Model?.Value?.ToString("00.00")} ℃");
|
||||
MemoryUsageBarViewModel = CreateBarViewModel(resourceBarViewModelMemoryUsageLogger, value => $"{value.Model?.Value?.ToString("000.00")} МБ");
|
||||
|
||||
Update();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user