Gestite azioni in pagina ispezione
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
@using SteUp.Shared.Core.Messages.Scheda
|
||||
@inject NewSchedaService NewScheda
|
||||
@inject IIspezioniService IspezioniService
|
||||
@inject IDialogService Dialog
|
||||
@implements IDisposable
|
||||
|
||||
<HeaderLayout Title="Ispezione" BackTo="Indietro" Back="true"/>
|
||||
@@ -29,14 +30,19 @@
|
||||
</MudChip>
|
||||
</div>
|
||||
<div class="action-scheda-group">
|
||||
<MudIconButton Variant="Variant.Filled" Icon="@Icons.Material.Rounded.Add" Color="Color.Warning" Size="Size.Medium"/>
|
||||
<MudIconButton Variant="Variant.Filled" Icon="@Icons.Material.Rounded.Add"
|
||||
Color="Color.Warning" Size="Size.Medium"
|
||||
OnClick="@(() => CreateNewScheda(group.Key))"/>
|
||||
</div>
|
||||
</div>
|
||||
</TitleContent>
|
||||
<ChildContent>
|
||||
@foreach (var scheda in group.Value)
|
||||
{
|
||||
<SchedaCard Scheda="scheda"/>
|
||||
<SchedaCard Scheda="scheda" OnSchedaDeleted="OnSchedaDeleted"
|
||||
OnSchedaModified="OnSchedaModified"
|
||||
CodMdep="@SteupDataService.InspectionPageState.Ispezione.CodMdep"
|
||||
Data="@SteupDataService.InspectionPageState.Ispezione.Data"/>
|
||||
}
|
||||
</ChildContent>
|
||||
</MudExpansionPanel>
|
||||
@@ -46,6 +52,7 @@
|
||||
</div>
|
||||
|
||||
@code {
|
||||
private List<Scheda> SchedeList { get; set; } = [];
|
||||
private Dictionary<JtbFasiDto, List<Scheda>> SchedeGrouped { get; set; } = [];
|
||||
|
||||
protected override void OnInitialized()
|
||||
@@ -61,22 +68,55 @@
|
||||
|
||||
InvokeAsync(async () =>
|
||||
{
|
||||
var schede = await IspezioniService.GetAllSchedeOfIspezioneAsync(
|
||||
SchedeList = await IspezioniService.GetAllSchedeOfIspezioneAsync(
|
||||
ispezione.CodMdep, ispezione.Data, ispezione.Rilevatore
|
||||
);
|
||||
|
||||
SchedeGrouped = schede
|
||||
.Where(s => s.Reparto != null)
|
||||
.GroupBy(s => s.CodJfas)
|
||||
.ToDictionary(
|
||||
g => g.First().Reparto!,
|
||||
g => g.ToList()
|
||||
);
|
||||
|
||||
GroupSchede();
|
||||
StateHasChanged();
|
||||
});
|
||||
}
|
||||
|
||||
private void GroupSchede()
|
||||
{
|
||||
SchedeGrouped = SchedeList
|
||||
.Where(s => s.Reparto != null)
|
||||
.GroupBy(s => s.CodJfas)
|
||||
.ToDictionary(
|
||||
g => g.First().Reparto!,
|
||||
g => g.ToList()
|
||||
);
|
||||
}
|
||||
|
||||
private void OnSchedaModified(Scheda obj)
|
||||
{
|
||||
var index = SchedeList.FindIndex(x => x.Id.Equals(obj.Id));
|
||||
if (index > 0) SchedeList[index] = obj;
|
||||
|
||||
GroupSchede();
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private void OnSchedaDeleted(Scheda obj)
|
||||
{
|
||||
SchedeList.Remove(obj);
|
||||
GroupSchede();
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private async Task CreateNewScheda(JtbFasiDto jtbFasi)
|
||||
{
|
||||
var modal = await ModalHelper.OpenFormScheda(
|
||||
Dialog,
|
||||
SteupDataService.InspectionPageState.Ispezione.CodMdep,
|
||||
SteupDataService.InspectionPageState.Ispezione.Data,
|
||||
new Scheda { Reparto = jtbFasi },
|
||||
true
|
||||
);
|
||||
|
||||
if (modal is {Canceled: false}) LoadSchede();
|
||||
}
|
||||
|
||||
void IDisposable.Dispose()
|
||||
{
|
||||
NewScheda.OnNewScheda -= LoadSchede;
|
||||
|
||||
Reference in New Issue
Block a user