DEEP-32 Training page: export to CSV added

This commit is contained in:
Andrey Shabarshov 2023-07-15 12:08:09 +01:00
parent 50fe5b03ca
commit b9eb646229
4 changed files with 47 additions and 17 deletions

View File

@ -24,6 +24,7 @@ namespace DeepTrace.Controllers
var current = previousIntervals.First();
var headers = string.Join(",", current.Data.Select((x, i) => $"Q{i + 1}min,Q{i + 1}max,Q{i + 1}avg,Q{i + 1}mean"));
headers += string.Join(",",",Name");
var writer = new StringBuilder();
@ -41,16 +42,10 @@ namespace DeepTrace.Controllers
var avg = queryData.Data.Average(x => x.Value);
var mean = queryData.Data.Sum(x => x.Value) / queryData.Data.Count;
if (i == currentInterval.Data.Count - 1)
{
data += min + "," + max + "," + avg + "," + mean;
}
else
{
data += min + "," + max + "," + avg + "," + mean + ",";
}
data += min + "," + max + "," + avg + "," + mean + ",";
}
data += currentInterval.Name;
writer.AppendLine(data);
}
return new(Encoding.UTF8.GetBytes(writer.ToString()),"text/csv")

View File

@ -18,8 +18,4 @@
<ProjectReference Include="..\PrometheusAPI\PrometheusAPI.csproj" />
</ItemGroup>
<ItemGroup>
<Folder Include="Data\ExportedData\" />
</ItemGroup>
</Project>

View File

@ -92,10 +92,6 @@
@*<MudNumericField @bind-Value="_queryForm.StepSec" Label="Step (sec)" Variant="Variant.Text" Min="0" />*@
<MudTextField Label="Description" @bind-Value="_queryForm.Source.Description" Variant="Variant.Text" InputType="InputType.Search" Lines="3" />
</MudCardContent>
<MudCardActions>
<p>Remove thus button!</p>
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="MudBlazor.Color.Primary" Class="ml-auto" OnClick="@HandleTrain">Train</MudButton>
</MudCardActions>
</MudCard>
</EditForm>
</MudItem>

View File

@ -67,7 +67,17 @@
<MudButton ButtonType="ButtonType.Submit" Variant="Variant.Filled" Color="MudBlazor.Color.Primary" Class="ml-3" OnClick="@HandleTrain">Train</MudButton>
</MudCardActions>
<MudTable Items="@_modelForm!.CurrentModel.IntervalDefinitionList" Hover="true" Breakpoint="Breakpoint.Sm" T="IntervalDefinition">
<MudTable
Items="@_modelForm!.CurrentModel.IntervalDefinitionList"
Hover="true"
FixedHeader="@fixed_header"
CanCancelEdit="@canCancelEdit"
RowEditPreview="@BackupInterval"
RowEditCancel="ResetItemToOriginalValues"
RowEditCommit="ItemHasBeenCommitted"
Breakpoint="Breakpoint.Sm"
T="IntervalDefinition"
>
<HeaderContent>
<MudTh>From</MudTh>
<MudTh>To</MudTh>
@ -80,6 +90,14 @@
<MudTd DataLabel="Name">@context.Name</MudTd>
<MudIconButton Icon="@Icons.Material.Filled.Delete" Class="ml-3" OnClick="@(()=>HandleDeleteTableContent(context))"></MudIconButton>
</RowTemplate>
<RowEditingTemplate>
<MudTd DataLabel="From">@context.From</MudTd>
<MudTd DataLabel="To">@context.To</MudTd>
<MudTd DataLabel="Name">
<MudTextField @bind-Value="@context.Name" Required />
</MudTd>
<MudIconButton Icon="@Icons.Material.Filled.Delete" Class="ml-3" OnClick="@(()=>HandleDeleteTableContent(context))"></MudIconButton>
</RowEditingTemplate>
</MudTable>
</MudCard>
</MudItem>
@ -100,6 +118,9 @@
private bool IsChartHidden => DisplayData == null;
private bool IsChartShown => !IsChartHidden;
private bool fixed_header = true;
private bool canCancelEdit = true;
private string _nameBackUp = "";
private class ModelForm
{
@ -338,6 +359,28 @@
await InvokeAsync(StateHasChanged);
}
private void BackupInterval(object element)
{
if(element is IntervalDefinition interval)
{
_nameBackUp = interval.Name;
}
}
private void ResetItemToOriginalValues(object element)
{
if (element is IntervalDefinition interval)
{
interval.Name = _nameBackUp;
}
}
private void ItemHasBeenCommitted(object element)
{
Task.Run(async ()=>ModelService.Store(_modelForm!.CurrentModel));
}
private async Task HandleRefresh()
{
var previousIntervals = _modelForm!.CurrentModel.IntervalDefinitionList;