DEEP-21, DEEP-22 Refresh button and functionality added

This commit is contained in:
Andrey Shabarshov 2023-06-28 17:29:22 +01:00
parent 07b5427e25
commit 4f9b12ac98
2 changed files with 26 additions and 5 deletions

View File

@ -11,7 +11,7 @@
} }
public string Name { get; set; } public string Name { get; set; }
public string DataSourceName { get; set; } = string.Empty; public DataSourceDefinition DataSource { get; set; } = new();
public string AIparameters { get; set; } = string.Empty; public string AIparameters { get; set; } = string.Empty;
public List<IntervalDefinition> IntervalDefinitionList { get; set; } = new(); public List<IntervalDefinition> IntervalDefinitionList { get; set; } = new();
} }

View File

@ -60,6 +60,7 @@
<MudCard Class="mb-3"> <MudCard Class="mb-3">
<MudCardActions> <MudCardActions>
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="MudBlazor.Color.Primary" Class="ml-3" OnClick="@HandleAddTableContent" Disabled="@IsAddDisabled">Add</MudButton> <MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="MudBlazor.Color.Primary" Class="ml-3" OnClick="@HandleAddTableContent" Disabled="@IsAddDisabled">Add</MudButton>
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="MudBlazor.Color.Primary" Class="ml-3" OnClick="@HandleRefresh" Disabled="@IsAddDisabled">Refresh</MudButton>
<MudSpacer/> <MudSpacer/>
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="MudBlazor.Color.Primary" Class="ml-3" OnClick="@HandleTrain">Train</MudButton> <MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="MudBlazor.Color.Primary" Class="ml-3" OnClick="@HandleTrain">Train</MudButton>
@ -122,7 +123,7 @@
return; return;
} }
_current = value; _current = value;
CurrentModel.DataSourceName = _current.Name; CurrentModel.DataSource = _current;
_self.InvokeAsync(_self.HandleShowQuery); _self.InvokeAsync(_self.HandleShowQuery);
} }
} }
@ -194,7 +195,7 @@
_modelDefinitions = models; _modelDefinitions = models;
_modelForm.CurrentModel = _modelDefinitions[0]; _modelForm.CurrentModel = _modelDefinitions[0];
var source = _dataSources.FirstOrDefault(x => x.Name == _modelDefinitions[0].DataSourceName); var source = _dataSources.FirstOrDefault(x => x.Name == _modelDefinitions[0].DataSource.Name);
_modelForm.DataSourceStorageSource = source ?? _dataSources[0]; _modelForm.DataSourceStorageSource = source ?? _dataSources[0];
} }
@ -207,13 +208,21 @@
var startDate = MinDate ?? (DateTime.UtcNow - TimeSpan.FromDays(30)); var startDate = MinDate ?? (DateTime.UtcNow - TimeSpan.FromDays(30));
var endDate = MaxDate ?? DateTime.UtcNow; var endDate = MaxDate ?? DateTime.UtcNow;
await UpdateDisplayData(startDate, endDate);
await InvokeAsync(StateHasChanged);
}
private async Task UpdateDisplayData(DateTime startDate, DateTime endDate)
{
// use automatic step value to always request 500 elements // use automatic step value to always request 500 elements
var seconds = (endDate - startDate).TotalSeconds / 500.0; var seconds = (endDate - startDate).TotalSeconds / 500.0;
if (seconds < 1.0) if (seconds < 1.0)
seconds = 1.0; seconds = 1.0;
var step = TimeSpan.FromSeconds(seconds); var step = TimeSpan.FromSeconds(seconds);
var tasks = _modelForm.DataSourceStorageSource.Queries var tasks = _modelForm!.DataSourceStorageSource.Queries
.Select(x => Prometheus.RangeQuery(x.Query, startDate, endDate, step, TimeSpan.FromSeconds(2))) .Select(x => Prometheus.RangeQuery(x.Query, startDate, endDate, step, TimeSpan.FromSeconds(2)))
.ToArray(); .ToArray();
@ -261,7 +270,6 @@
} }
DisplayData = new() { Series = data }; DisplayData = new() { Series = data };
await InvokeAsync(StateHasChanged);
} }
private void HandleAddModel() private void HandleAddModel()
@ -288,6 +296,19 @@
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);
} }
private async Task HandleRefresh()
{
var previousIntervals = _modelForm!.CurrentModel.IntervalDefinitionList;
foreach(var currentInterval in previousIntervals)
{
await UpdateDisplayData(currentInterval.From,currentInterval.To);
currentInterval.Data = DisplayData!.Series;
}
await ModelService.Store(_modelForm!.CurrentModel);
// await InvokeAsync(StateHasChanged);
}
private void HandleDeleteTableContent() private void HandleDeleteTableContent()
{ {