using Template.Shared.Core.Interface; namespace Template.Maui.Core.Services; public class SyncDbService(IIntegryApiService integryApiService, LocalDbService localDb) : ISyncDbService { public async Task GetAndSaveActivity(string? dateFilter) { var allActivity = await integryApiService.GetActivity(dateFilter); if (allActivity is not null) if (dateFilter is null) await localDb.InsertAll(allActivity); else await localDb.InsertOrUpdate(allActivity); } public async Task GetAndSaveCommesse(string? dateFilter) { var allCommesse = await integryApiService.GetAllCommesse(dateFilter); if (allCommesse is not null) if (dateFilter is null) await localDb.InsertAll(allCommesse); else await localDb.InsertOrUpdate(allCommesse); } public async Task GetAndSaveProspect(string? dateFilter) { var tasks = new List(); var taskSyncResponseDto = await integryApiService.GetProspect(dateFilter); if (taskSyncResponseDto.PtbPros is not null) tasks.Add(dateFilter is null ? localDb.InsertAll(taskSyncResponseDto.PtbPros) : localDb.InsertOrUpdate(taskSyncResponseDto.PtbPros)); if (taskSyncResponseDto.PtbProsRif is not null) tasks.Add(dateFilter is null ? localDb.Insert(taskSyncResponseDto.PtbProsRif) : localDb.InsertOrUpdate(taskSyncResponseDto.PtbProsRif)); await Task.WhenAll(tasks.AsEnumerable()); } public async Task GetAndSaveClienti(string? dateFilter) { var tasks = new List(); var taskSyncResponseDto = await integryApiService.GetAnagClie(dateFilter); if (taskSyncResponseDto.AnagClie is not null) tasks.Add(dateFilter is null ? localDb.InsertAll(taskSyncResponseDto.AnagClie) : localDb.InsertOrUpdate(taskSyncResponseDto.AnagClie)); if (taskSyncResponseDto.VtbDest is not null) tasks.Add(dateFilter is null ? localDb.Insert(taskSyncResponseDto.VtbDest) : localDb.InsertOrUpdate(taskSyncResponseDto.VtbDest)); if (taskSyncResponseDto.VtbCliePersRif is not null) tasks.Add(dateFilter is null ? localDb.Insert(taskSyncResponseDto.VtbCliePersRif) : localDb.InsertOrUpdate(taskSyncResponseDto.VtbCliePersRif)); await Task.WhenAll(tasks.AsEnumerable()); } }