Migliorato caricamento clienti

This commit is contained in:
2025-11-17 11:11:05 +01:00
parent a91e08f162
commit e4b252f301
3 changed files with 74 additions and 37 deletions

View File

@@ -88,7 +88,7 @@
FullWidth="true"
StartIcon="@Icons.Material.Outlined.Sync"
Size="Size.Medium"
OnClick="() => UpdateDb()"
OnClick="@(() => UpdateDb())"
Variant="Variant.Outlined">
Sincronizza
</MudButton>
@@ -154,6 +154,8 @@
private void UpdateDb(bool withData = false)
{
LocalStorage.Remove("last-user-sync");
var absoluteUri = NavigationManager.ToAbsoluteUri(NavigationManager.Uri);
var pathAndQuery = absoluteUri.Segments.Length > 1 ? absoluteUri.PathAndQuery : null;

View File

@@ -1,4 +1,6 @@
using salesbook.Shared.Core.Dto;
using IntegryApiClient.Core.Domain.Abstraction.Contracts.Storage;
using Java.Sql;
using salesbook.Shared.Core.Dto;
using salesbook.Shared.Core.Dto.Contact;
using salesbook.Shared.Core.Dto.PageState;
using salesbook.Shared.Core.Dto.Users;
@@ -6,7 +8,7 @@ using salesbook.Shared.Core.Interface;
namespace salesbook.Shared.Core.Services;
public class PreloadService(IManageDataService manageData, UserListState userState)
public class PreloadService(IManageDataService manageData, ILocalStorage localStorage, UserListState userState)
{
public async Task PreloadUsersAsync()
{
@@ -14,8 +16,11 @@ public class PreloadService(IManageDataService manageData, UserListState userSta
return;
userState.IsLoading = true;
DateTime? lastSync = localStorage.Get<DateTime>("last-user-sync");
lastSync = lastSync.Equals(DateTime.MinValue) ? null : lastSync;
var users = await manageData.GetContact(new WhereCondContact { FlagStato = "A" });
var users = await manageData.GetContact(new WhereCondContact { FlagStato = "A" }, lastSync);
var sorted = users
.Where(u => !string.IsNullOrWhiteSpace(u.RagSoc))
@@ -27,6 +32,8 @@ public class PreloadService(IManageDataService manageData, UserListState userSta
userState.FilteredGroupedUserList = userState.GroupedUserList;
userState.AllUsers = users;
localStorage.Set("last-user-sync", DateTime.Now);
userState.NotifyUsersLoaded();
}