Gestiti salvataggi rest

This commit is contained in:
2026-03-02 10:50:34 +01:00
parent e027d8e5cf
commit ab9578a45f
58 changed files with 1235 additions and 305 deletions

View File

@@ -1,12 +1,13 @@
using IntegryApiClient.Core.Domain.Abstraction.Contracts.Account;
using IntegryApiClient.Core.Domain.Abstraction.Contracts.Device;
using SteUp.Shared.Core.BarcodeReader.Contracts;
using SteUp.Shared.Core.Data.Contracts;
using SteUp.Shared.Core.Dto;
using SteUp.Shared.Core.Dto.PageState;
using SteUp.Shared.Core.Helpers;
using SteUp.Shared.Core.Interface.IntegryApi;
using SteUp.Shared.Core.Interface.LocalDb;
using SteUp.Shared.Core.Interface.System;
using SteUp.Shared.Core.Interface.System.Network;
namespace SteUp.Shared.Core.Data;
@@ -15,12 +16,14 @@ public class SteupDataService(
IUserSession userSession,
IDeviceService deviceService,
IGenericSystemService genericSystemService,
IIspezioniService ispezioniService,
IDbInitializer dbInitializer) : ISteupDataService
{
public async Task Init()
{
await dbInitializer.InitializeAsync();
await LoadDataAsync();
await CheckAndUpdateStatus();
RegisterAppVersion();
}
@@ -31,6 +34,48 @@ public class SteupDataService(
);
}
private async Task CheckAndUpdateStatus()
{
var ispezioni = await ispezioniService.GetAllIspezioniWithSchedeAsync();
var listActivityId = ispezioni
.Where(x => x.ActivityId != null)
.Select(x => x.ActivityId!)
.ToList();
if (!listActivityId.IsNullOrEmpty())
{
var stati = await integrySteupService.RetrieveStatoIspezioni(
new RetrieveStatoIspezioniRequestDto
{
ActivityIdList = listActivityId
}
);
if (stati != null)
{
foreach (var stato in stati)
{
var ispezione = ispezioni.Find(x =>
x.ActivityId != null &&
x.ActivityId.EqualsIgnoreCase(stato.ActivityId)
);
var newStatus = StatusEnumHelper.ConvertToStatusEnum(stato.ActivityResultId);
if (ispezione != null && ispezione.Stato != newStatus)
{
await ispezioniService.UpdateStatoIspezioneAsync(
ispezione.CodMdep,
ispezione.Data,
ispezione.Rilevatore,
newStatus
);
}
}
}
}
}
private async Task LoadDataAsync()
{
if (!await userSession.IsLoggedIn()) return;