Cambiata visualizzazione calendario e aggiunto formAttività
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
@using Template.Shared.Components.Layout.Spinner
|
||||
@using Template.Shared.Core.Interface
|
||||
@inject ISyncDbService syncDb
|
||||
@inject IManageDataService manageData
|
||||
|
||||
<SyncSpinner Elements="@Elements"/>
|
||||
|
||||
@@ -11,27 +12,55 @@
|
||||
|
||||
private Dictionary<string, bool> Elements { get; set; } = new();
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
private bool _hasStarted = false;
|
||||
private int _completedCount = 0;
|
||||
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
Elements.Add("Attività", false);
|
||||
Elements.Add("Clienti", false);
|
||||
Elements.Add("Commesse", false);
|
||||
StateHasChanged();
|
||||
Elements["Attività"] = false;
|
||||
Elements["Commesse"] = false;
|
||||
Elements["Clienti"] = false;
|
||||
Elements["Prospect"] = false;
|
||||
}
|
||||
|
||||
await Task.WhenAll(SetActivity(), SetClienti(), SetCommesse());
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (firstRender && !_hasStarted)
|
||||
{
|
||||
_hasStarted = true;
|
||||
|
||||
LocalStorage.Set("last-sync", DateTime.Now);
|
||||
if (DateFilter is null)
|
||||
{
|
||||
await manageData.ClearDb();
|
||||
}
|
||||
|
||||
var pathQuery = System.Web.HttpUtility.ParseQueryString(new UriBuilder(NavigationManager.Uri).Query);
|
||||
var originalPath = pathQuery["path"] ?? null;
|
||||
var path = originalPath ?? "/Calendar";
|
||||
|
||||
NavigationManager.NavigateTo(path);
|
||||
await Task.WhenAll(RunAndTrack(SetActivity), RunAndTrack(SetClienti), RunAndTrack(SetProspect), RunAndTrack(SetCommesse));
|
||||
}
|
||||
}
|
||||
|
||||
private async Task RunAndTrack(Func<Task> func)
|
||||
{
|
||||
await func();
|
||||
|
||||
_completedCount++;
|
||||
if (_completedCount == Elements.Count)
|
||||
{
|
||||
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, replace: true);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task SetActivity()
|
||||
{
|
||||
await syncDb.GetAndSaveActivity(DateFilter);
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
await syncDb.GetAndSaveActivity(DateFilter);
|
||||
});
|
||||
|
||||
Elements["Attività"] = true;
|
||||
StateHasChanged();
|
||||
@@ -39,16 +68,32 @@
|
||||
|
||||
private async Task SetClienti()
|
||||
{
|
||||
await syncDb.GetAndSaveClienti(DateFilter);
|
||||
await syncDb.GetAndSaveProspect(DateFilter);
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
await syncDb.GetAndSaveClienti(DateFilter);
|
||||
});
|
||||
|
||||
Elements["Clienti"] = true;
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private async Task SetProspect()
|
||||
{
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
await syncDb.GetAndSaveProspect(DateFilter);
|
||||
});
|
||||
|
||||
Elements["Prospect"] = true;
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
private async Task SetCommesse()
|
||||
{
|
||||
await syncDb.GetAndSaveCommesse(DateFilter);
|
||||
await Task.Run(async () =>
|
||||
{
|
||||
await syncDb.GetAndSaveCommesse(DateFilter);
|
||||
});
|
||||
|
||||
Elements["Commesse"] = true;
|
||||
StateHasChanged();
|
||||
|
||||
Reference in New Issue
Block a user