From f2d3c08cfeb82e3f0c3273fff0c20131a09f5a04 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 9 Aug 2023 19:26:26 +0200 Subject: [PATCH] Bozza gestione sel data in browser --- SHERPA.AD/SHERPA.AD.csproj | 4 +- SHERPA.BBM.UI/App.razor | 22 ++++---- SHERPA.BBM.UI/Components/CmpTop.razor | 23 +++++--- SHERPA.BBM.UI/Components/CmpTop.razor.cs | 32 +++++++++--- SHERPA.BBM.UI/Data/BBM_SelectData.cs | 27 ++++++++-- SHERPA.BBM.UI/Pages/Baskets.razor.cs | 39 ++++++++++++-- SHERPA.BBM.UI/Pages/Items.razor.cs | 9 ---- SHERPA.BBM.UI/Pages/Negotiations.razor.cs | 64 ++++++++++++++++++++++- SHERPA.BBM.UI/SHERPA.BBM.UI.csproj | 4 +- SHERPA.BBM.UI/_Imports.razor | 1 + 10 files changed, 176 insertions(+), 49 deletions(-) diff --git a/SHERPA.AD/SHERPA.AD.csproj b/SHERPA.AD/SHERPA.AD.csproj index 9465375..97426e2 100644 --- a/SHERPA.AD/SHERPA.AD.csproj +++ b/SHERPA.AD/SHERPA.AD.csproj @@ -4,7 +4,7 @@ net6.0 enable enable - 2.0.2308.0916 + 2.0.2308.0919 Egalware 2021+ @@ -30,6 +30,8 @@ + + diff --git a/SHERPA.BBM.UI/App.razor b/SHERPA.BBM.UI/App.razor index 3a2af53..4df9aaf 100644 --- a/SHERPA.BBM.UI/App.razor +++ b/SHERPA.BBM.UI/App.razor @@ -1,10 +1,12 @@ - - - - - - -

Sorry, there's nothing at this address.

-
-
-
+ + + + + + + +

Sorry, there's nothing at this address.

+
+
+
+
diff --git a/SHERPA.BBM.UI/Components/CmpTop.razor b/SHERPA.BBM.UI/Components/CmpTop.razor index 36f1301..6652bef 100644 --- a/SHERPA.BBM.UI/Components/CmpTop.razor +++ b/SHERPA.BBM.UI/Components/CmpTop.razor @@ -9,20 +9,27 @@
- @if (isLoading) + @if (isLoading) { } else { - @userName - @if (hasRight) - { - - - - } + + + @userName + @if (hasRight) + { + + + + } + + + Auth missing! + + }
diff --git a/SHERPA.BBM.UI/Components/CmpTop.razor.cs b/SHERPA.BBM.UI/Components/CmpTop.razor.cs index 011fe2e..4a452bf 100644 --- a/SHERPA.BBM.UI/Components/CmpTop.razor.cs +++ b/SHERPA.BBM.UI/Components/CmpTop.razor.cs @@ -1,6 +1,9 @@ using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Authorization; +using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage; +using Newtonsoft.Json.Linq; using SHERPA.Data.DbModels; +using System; namespace SHERPA.BBM.UI.Components { @@ -45,10 +48,31 @@ namespace SHERPA.BBM.UI.Components protected SHERPA.AD.Data.SADDataService SDService { get; set; } = null!; protected List UserRight { get; set; } = new List(); + //{ + // get + // { + // List answ = new List(); + // var pUpd = Task.Run(async () => + // { + // var result = await ProtectedSessionStore.GetAsync>("UserRight"); + // answ = result.Success ? result.Value : new List(); + + // }); + // pUpd.Wait(); + // return answ; + // } + // set + // { + // ProtectedSessionStore.SetAsync("UserRight", value); + // } + //} [Inject] protected SHERPA.AD.Data.VocabService VocService { get; set; } = null!; + [Inject] + protected ProtectedSessionStorage ProtectedSessionStore { get; set; } = null!; + #endregion Protected Properties #region Protected Methods @@ -116,14 +140,6 @@ namespace SHERPA.BBM.UI.Components private async Task checkAuth() { await Task.Delay(1); - // verifico pagina tra i permessi, se manca --> rimando a pagina unauth... -#if false - string pageName = NavManager.ToBaseRelativePath(NavManager.Uri).ToLower(); - if (pageName.Contains("?")) - { - pageName = pageName.Substring(0, pageName.IndexOf("?")); - } -#endif // controllo se ho diritti... if (UserRight == null || UserRight.Count == 0) { diff --git a/SHERPA.BBM.UI/Data/BBM_SelectData.cs b/SHERPA.BBM.UI/Data/BBM_SelectData.cs index 1bf7bd5..9f034e3 100644 --- a/SHERPA.BBM.UI/Data/BBM_SelectData.cs +++ b/SHERPA.BBM.UI/Data/BBM_SelectData.cs @@ -1,4 +1,7 @@ -using System; +using Blazored.LocalStorage; +using Microsoft.AspNetCore.Components; +using Newtonsoft.Json.Linq; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -9,6 +12,14 @@ namespace SHERPA.BBM.UI.Data { #region Public Properties +#if false + public BBM_SelectData(ILocalStorageService locStorage) + { + this.localStorage = locStorage; + } + + private ILocalStorageService localStorage { get; set; } = null!; +#endif /// /// Anno selezionato (0=tutti) @@ -39,11 +50,17 @@ namespace SHERPA.BBM.UI.Data /// Cliente selezionato /// public int CustomerId { get; set; } = 1; +#if false + { + get => localStorage.GetItemAsync("CompanyId").Result; + set => localStorage.SetItemAsync("CompanyId", $"{value}"); + } +#endif - /// - /// Doc selezionato - /// - public int DocId { get; set; } = 0; + /// + /// Doc selezionato + /// + public int DocId { get; set; } = 0; /// /// Negoziazione selezionata diff --git a/SHERPA.BBM.UI/Pages/Baskets.razor.cs b/SHERPA.BBM.UI/Pages/Baskets.razor.cs index 845cffe..d0e6e86 100644 --- a/SHERPA.BBM.UI/Pages/Baskets.razor.cs +++ b/SHERPA.BBM.UI/Pages/Baskets.razor.cs @@ -1,5 +1,9 @@ -using Microsoft.AspNetCore.Components; +using Blazored.LocalStorage; +using Blazored.SessionStorage; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage; using Microsoft.JSInterop; +using Newtonsoft.Json; using SHERPA.BBM.UI.Data; using static EgwCoreLib.Razor.Sorter; @@ -67,6 +71,17 @@ namespace SHERPA.BBM.UI.Pages [Inject] protected NavigationManager NavManager { get; set; } = null!; +#if true + [Inject] + protected ILocalStorageService localStorage { get; set; } = null!; + [Inject] + protected ISessionStorageService sessStorage { get; set; } = null!; +#endif + [Inject] + protected ProtectedSessionStorage ProtSessionStore { get; set; } = null!; + [Inject] + protected ProtectedLocalStorage ProtLocalStore { get; set; } = null!; + protected bool OpenNewTab { get; set; } = true; protected string OpenNewTabMsg @@ -97,7 +112,6 @@ namespace SHERPA.BBM.UI.Pages protected string CheckActive(bool isActive) { return isActive ? "" : "text-secondary"; - //return isActive ? "" : "opacity-50"; } protected void CreateNew() @@ -359,7 +373,7 @@ namespace SHERPA.BBM.UI.Pages } } - private void saveSelections(CORE.DbModels.BasketsModel currRecord) + private async Task saveSelections(CORE.DbModels.BasketsModel currRecord) { SelectData.CompanyId = currRecord.CompanyId; // salvo codice company... @@ -377,10 +391,25 @@ namespace SHERPA.BBM.UI.Pages if (!OpenNewTab) { // salvo i parametri x filtraggio successivo... - MService.UsrParamSet("OrdersSelYear", $"{SelectData.YearSel}"); - MService.UsrParamSet("OrdersSelBaskId", $"{SelectData.BasketId}"); + MService.UsrParamSet("OrdersSelYear", $"{currRecord.Anno}"); + MService.UsrParamSet("OrdersSelBaskId", $"{currRecord.BasketId}"); MService.UsrParamSet("OrdersSelCustId", $"{SelectData.CustomerId}"); } + // salvo in session storage + string serData = JsonConvert.SerializeObject(SelectData); + await localStorage.SetItemAsStringAsync("SelData", serData); + await localStorage.SetItemAsStringAsync("NegotSelData", serData); + //await sessStorage.SetItemAsStringAsync("SelData", serData); +#if false + await localStorage.SetItemAsStringAsync("Anno", $"{currRecord.Anno}"); + await localStorage.SetItemAsStringAsync("BasketId", $"{currRecord.BasketId}"); + await localStorage.SetItemAsStringAsync("CompanyId", $"{currRecord.CompanyId}"); + await localStorage.SetItemAsStringAsync("CustomerId", $"{SelectData.CustomerId}"); +#endif + //await ProtSessionStore.SetAsync("Anno", currRecord.Anno); + //await ProtSessionStore.SetAsync("BasketId", currRecord.BasketId); + //await ProtSessionStore.SetAsync("CompanyId", currRecord.CompanyId); + //await ProtSessionStore.SetAsync("CustomerId", SelectData.CustomerId); } private void SortTable() diff --git a/SHERPA.BBM.UI/Pages/Items.razor.cs b/SHERPA.BBM.UI/Pages/Items.razor.cs index 6d58814..4ce69dd 100644 --- a/SHERPA.BBM.UI/Pages/Items.razor.cs +++ b/SHERPA.BBM.UI/Pages/Items.razor.cs @@ -30,12 +30,7 @@ namespace SHERPA.BBM.UI.Pages { if (currItem != null) { - //try - //{ answ = (currItem.ItemId == ItemId) ? "bg-primary" : Item2Merge.Contains(ItemId) ? "table-info" : ""; - //} - //catch - //{ } } } return answ; @@ -184,9 +179,6 @@ namespace SHERPA.BBM.UI.Pages CodItem = newCode, ResType = currRecord.ResType, UM = currRecord.UM, -#if false - UnitCost = currRecord.UnitCost, -#endif UnitPrice = currRecord.UnitPrice, Descript = "COPIA di " + currRecord.Descript }; @@ -279,7 +271,6 @@ namespace SHERPA.BBM.UI.Pages set { _SelResType = value; - //ReloadAllData().ConfigureAwait(false); var pUpd = Task.Run(async () => await ReloadAllData()); pUpd.Wait(); } diff --git a/SHERPA.BBM.UI/Pages/Negotiations.razor.cs b/SHERPA.BBM.UI/Pages/Negotiations.razor.cs index 040dafe..f84bf90 100644 --- a/SHERPA.BBM.UI/Pages/Negotiations.razor.cs +++ b/SHERPA.BBM.UI/Pages/Negotiations.razor.cs @@ -1,6 +1,11 @@ +using Blazored.LocalStorage; +using Blazored.SessionStorage; using EgwCoreLib.Razor.Data; using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using Org.BouncyCastle.Asn1.IsisMtt.X509; using SHERPA.BBM.UI.Data; using static EgwCoreLib.Razor.Sorter; @@ -14,7 +19,11 @@ namespace SHERPA.BBM.UI.Pages { get { - bool answ = (SelBasketId <= 1 || SelCustomerId <= 1 || SelCompanyId <= 1) ? true : false; + bool answ = true; + if (!isLoading) + { + answ = (SelBasketId <= 1 || SelCustomerId <= 1 || SelCompanyId <= 1) ? true : false; + } return answ; } } @@ -76,8 +85,37 @@ namespace SHERPA.BBM.UI.Pages get => OpenNewTab ? "Nuova Scheda" : "Scheda Corrente"; } + protected BBM_SelectData SelectData { get; set; } = new BBM_SelectData(); +#if false + { + get + { + var rawData = sessStorage.GetItemAsync("NegotSelData").Result; + if(rawData==null) + { + rawData = localStorage.GetItemAsync("NegotSelData").Result; + string serData = JsonConvert.SerializeObject(rawData); + sessStorage.SetItemAsStringAsync("NegotSelData", serData); + } + return rawData; + } +set + { + string serData = JsonConvert.SerializeObject(value); +//localStorage.SetItemAsStringAsync("NegotSelData", serData); +sessStorage.SetItemAsStringAsync("NegotSelData", serData); + } + } +#endif + +#if false [Inject] - protected BBM_SelectData SelectData { get; set; } = null!; + protected BBM_SelectData SelectData { get; set; } = null!; +#endif + [Inject] + protected ILocalStorageService localStorage { get; set; } = null!; + [Inject] + protected ISessionStorageService sessStorage { get; set; } = null!; protected int totalCount { @@ -176,6 +214,28 @@ namespace SHERPA.BBM.UI.Pages await ReloadAllData(); } + protected override async Task OnAfterRenderAsync(bool firstRender) + { + // check fix selData.. + await fixSel(); + //return base.OnAfterRenderAsync(firstRender); + } + + private const string storKey = "NegotSelData"; + + private async Task fixSel() + { + var rawData = await sessStorage.GetItemAsync(storKey); + if (rawData == null) + { + rawData = await localStorage.GetItemAsync(storKey); + string serData = JsonConvert.SerializeObject(rawData); + await sessStorage.SetItemAsStringAsync(storKey, serData); + await localStorage.RemoveItemAsync(storKey); + } + SelectData = rawData; + } + protected async Task ReloadAllData() { isLoading = true; diff --git a/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj b/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj index 676eb90..765fa98 100644 --- a/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj +++ b/SHERPA.BBM.UI/SHERPA.BBM.UI.csproj @@ -4,7 +4,7 @@ net6.0 60fcdaab-6c1e-4bec-9d88-f7727ef1c12c wwwroot\favicon.ico - 2.0.2308.0916 + 2.0.2308.0919 enable enable Egalware 2021+ @@ -171,6 +171,8 @@ + + diff --git a/SHERPA.BBM.UI/_Imports.razor b/SHERPA.BBM.UI/_Imports.razor index 2685b0e..dfd4d01 100644 --- a/SHERPA.BBM.UI/_Imports.razor +++ b/SHERPA.BBM.UI/_Imports.razor @@ -6,6 +6,7 @@ @using Microsoft.AspNetCore.Components.Web @using Microsoft.AspNetCore.Components.Web.Virtualization @using Microsoft.JSInterop +@using Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage @using SHERPA.BBM.UI @using SHERPA.BBM.UI.Shared @using SHERPA.BBM.UI.Data