70 lines
2.5 KiB
C#
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());
|
|
}
|
|
|
|
} |