@page "/sync" @page "/sync/{DateFilter}" @using Template.Shared.Components.Layout.Spinner @using Template.Shared.Core.Interface @inject ISyncDbService syncDb @code { [Parameter] public string? DateFilter { get; set; } private Dictionary Elements { get; set; } = new(); protected override async Task OnInitializedAsync() { Elements.Add("Attività", false); Elements.Add("Clienti", false); Elements.Add("Commesse", false); StateHasChanged(); await Task.WhenAll(SetActivity(), SetClienti(), SetCommesse()); LocalStorage.Set("last-sync", DateTime.Now); var pathQuery = System.Web.HttpUtility.ParseQueryString(new UriBuilder(NavigationManager.Uri).Query); var originalPath = pathQuery["path"] ?? null; var path = originalPath ?? "/Calendar"; NavigationManager.NavigateTo(path); } private async Task SetActivity() { await syncDb.GetAndSaveActivity(DateFilter); Elements["Attività"] = true; StateHasChanged(); } private async Task SetClienti() { await syncDb.GetAndSaveClienti(DateFilter); await syncDb.GetAndSaveProspect(DateFilter); Elements["Clienti"] = true; StateHasChanged(); } private async Task SetCommesse() { await syncDb.GetAndSaveCommesse(DateFilter); Elements["Commesse"] = true; StateHasChanged(); } }