Cambiata visualizzazione calendario e aggiunto formAttività

This commit is contained in:
2025-06-11 10:11:20 +02:00
parent d462e9faca
commit d8f2588e0e
52 changed files with 1308 additions and 4734 deletions

View File

@@ -1,7 +1,6 @@
using System.Linq.Expressions;
using SQLite;
using SQLite;
using System.Linq.Expressions;
using Template.Shared.Core.Entity;
namespace Template.Maui.Core.Services;
public class LocalDbService
@@ -13,7 +12,6 @@ public class LocalDbService
{
_connection = new SQLiteAsyncConnection(Path.Combine(FileSystem.AppDataDirectory, DB_NAME));
//Creazione tabelle database
_connection.CreateTableAsync<AnagClie>();
_connection.CreateTableAsync<JtbComt>();
_connection.CreateTableAsync<PtbPros>();
@@ -52,9 +50,24 @@ public class LocalDbService
}
}
public Task Insert<T>(List<T> entityList) =>
public Task InsertAll<T>(List<T> entityList) =>
_connection.InsertAllAsync(entityList, typeof(T));
public async Task Insert<T>(List<T> entityList)
{
foreach (var entity in entityList)
{
try
{
await _connection.InsertAsync(entity, typeof(T));
}
catch (Exception ex)
{
Console.WriteLine($"Errore db su {entity}: {ex.Message}");
}
}
}
public async Task InsertOrUpdate<T>(List<T> entityList)
{
foreach (var entity in entityList)

View File

@@ -37,12 +37,21 @@ public class ManageDataService(LocalDbService localDb, IMapper mapper) : IManage
var codJcomList = activities
.Select(x => x.CodJcom)
.Where(x => !string.IsNullOrEmpty(x))
.Distinct()
.ToList();
.Distinct().ToList();
var jtbComtList = await localDb.Get<JtbComt>(x => codJcomList.Contains(x.CodJcom));
var commesseDict = jtbComtList.ToDictionary(x => x.CodJcom, x => x.Descrizione);
var codAnagList = activities
.Select(x => x.CodAnag)
.Where(x => !string.IsNullOrEmpty(x))
.Distinct().ToList();
var clientList = await localDb.Get<AnagClie>(x => codAnagList.Contains(x.CodAnag));
var distinctClient = clientList.ToDictionary(x => x.CodAnag, x => x.RagSoc);
var prospectList = await localDb.Get<PtbPros>(x => codAnagList.Contains(x.CodPpro));
var distinctProspect = prospectList.ToDictionary(x => x.CodPpro, x => x.RagSoc);
var returnDto = activities
.Select(activity =>
{
@@ -57,6 +66,16 @@ public class ManageDataService(LocalDbService localDb, IMapper mapper) : IManage
dto.Category = activity.CodAnag != null ? ActivityCategoryEnum.Interna : ActivityCategoryEnum.Memo;
}
if (dto.Category == ActivityCategoryEnum.Interna && activity.CodAnag != null)
{
string? ragSoc;
if (distinctClient.TryGetValue(activity.CodAnag, out ragSoc) || distinctProspect.TryGetValue(activity.CodAnag, out ragSoc))
{
dto.Cliente = ragSoc;
}
}
dto.Commessa = activity.CodJcom != null && commesseDict.TryGetValue(activity.CodJcom, out var descr)
? descr
: null;
@@ -67,6 +86,6 @@ public class ManageDataService(LocalDbService localDb, IMapper mapper) : IManage
return returnDto;
}
public async Task ClearDb() =>
await localDb.ResetDb();
public Task ClearDb() =>
localDb.ResetDb();
}

View File

@@ -10,7 +10,7 @@ public class SyncDbService(IIntegryApiService integryApiService, LocalDbService
if (allActivity is not null)
if (dateFilter is null)
await localDb.Insert(allActivity);
await localDb.InsertAll(allActivity);
else
await localDb.InsertOrUpdate(allActivity);
}
@@ -21,49 +21,50 @@ public class SyncDbService(IIntegryApiService integryApiService, LocalDbService
if (allCommesse is not null)
if (dateFilter is null)
await localDb.Insert(allCommesse);
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)
if (dateFilter is null)
await localDb.Insert(taskSyncResponseDto.PtbPros);
else
await localDb.InsertOrUpdate(taskSyncResponseDto.PtbPros);
tasks.Add(dateFilter is null
? localDb.InsertAll(taskSyncResponseDto.PtbPros)
: localDb.InsertOrUpdate(taskSyncResponseDto.PtbPros));
if (taskSyncResponseDto.PtbProsRif is not null)
if (dateFilter is null)
await localDb.Insert(taskSyncResponseDto.PtbProsRif);
else
await localDb.InsertOrUpdate(taskSyncResponseDto.PtbProsRif);
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)
if (dateFilter is null)
await localDb.Insert(taskSyncResponseDto.AnagClie);
else
await localDb.InsertOrUpdate(taskSyncResponseDto.AnagClie);
tasks.Add(dateFilter is null
? localDb.InsertAll(taskSyncResponseDto.AnagClie)
: localDb.InsertOrUpdate(taskSyncResponseDto.AnagClie));
if (taskSyncResponseDto.VtbDest is not null)
if (dateFilter is null)
await localDb.Insert(taskSyncResponseDto.VtbDest);
else
await localDb.InsertOrUpdate(taskSyncResponseDto.VtbDest);
tasks.Add(dateFilter is null
? localDb.Insert(taskSyncResponseDto.VtbDest)
: localDb.InsertOrUpdate(taskSyncResponseDto.VtbDest));
if (taskSyncResponseDto.VtbCliePersRif is not null)
if (dateFilter is null)
await localDb.Insert(taskSyncResponseDto.VtbCliePersRif);
else
await localDb.InsertOrUpdate(taskSyncResponseDto.VtbCliePersRif);
tasks.Add(dateFilter is null
? localDb.Insert(taskSyncResponseDto.VtbCliePersRif)
: localDb.InsertOrUpdate(taskSyncResponseDto.VtbCliePersRif));
await Task.WhenAll(tasks.AsEnumerable());
}
}