Files
TaskHybrid/Template.Maui/Core/Services/SyncDbService.cs

70 lines
2.5 KiB
C#

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<Task>();
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<Task>();
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());
}
}