From ab6b2ea2a91799aec645372877334574f5dbe37f Mon Sep 17 00:00:00 2001 From: "zaccaria.majid" Date: Mon, 7 Aug 2023 15:09:14 +0200 Subject: [PATCH] prova intersect --- SMGen.Data/Controllers/SMGenController.cs | 17 +++++++++----- SMGen.Data/Services/SMGDataService.cs | 28 +++++++++++++++++------ SMGen/Components/FilesList.razor.cs | 13 +++++++++++ 3 files changed, 45 insertions(+), 13 deletions(-) diff --git a/SMGen.Data/Controllers/SMGenController.cs b/SMGen.Data/Controllers/SMGenController.cs index de440d9..f539fd9 100644 --- a/SMGen.Data/Controllers/SMGenController.cs +++ b/SMGen.Data/Controllers/SMGenController.cs @@ -108,12 +108,16 @@ namespace SMGen.Data.Controllers { try { - //localDbCtx - // .DbSetAnagEventiTemp - // .AddRange(newEvRecs); - //await localDbCtx.SaveChangesAsync(); - //fatto = true; + localDbCtx + .Database + .ExecuteSqlRaw("DELETE FROM AnagraficaEventi_Chk"); + localDbCtx + .DbSetAnagEventiTemp + .AddRange(newEvRecs); + await localDbCtx.SaveChangesAsync(); + fatto = true; +#if false foreach (var item in newEvRecs) { var currRec = localDbCtx @@ -132,7 +136,8 @@ namespace SMGen.Data.Controllers .DbSetAnagEventiTemp .Add(item); } - } + } +#endif await localDbCtx.SaveChangesAsync(); fatto = true; Log.Info($"Gli stati sono OK!"); diff --git a/SMGen.Data/Services/SMGDataService.cs b/SMGen.Data/Services/SMGDataService.cs index 7c0f7a4..6fcfc3a 100644 --- a/SMGen.Data/Services/SMGDataService.cs +++ b/SMGen.Data/Services/SMGDataService.cs @@ -231,10 +231,12 @@ namespace SMGen.Data.Services private List Bits { get; set; } = new List(); private Dictionary Events_to_send { get; set; } = new Dictionary(); + private Dictionary evOk { get; set; } = new Dictionary(); public List events2Add { get; set; } = new List(); private List Rules { get; set; } = new List(); private List States { get; set; } = new List(); private List TranInList2add { get; set; } = new List(); + public Dictionary eventsFromDb = new Dictionary(); /// /// Valuta un file di ruoles x ingressi 2 eventi e restituisce esito /// @@ -257,7 +259,7 @@ namespace SMGen.Data.Services // recupero nome file x partire string filePath = currFile.tempFileName; string errMgs = ""; - Dictionary eventsFromDb = await AnagEventiGetAll(); + eventsFromDb = await AnagEventiGetAll(); try { // stream lettura file @@ -316,17 +318,17 @@ namespace SMGen.Data.Services case "$EVENT": #if false Events_to_send.Add(sz_tokens[2].Trim().ToUpper(), int.Parse(sz_tokens[1].Trim().ToUpper())); + +#endif + Events_to_send.Add(sz_tokens[2].Trim().ToUpper(), int.Parse(sz_tokens[1].Trim().ToUpper())); var newEvent = new AnagEventiModelTemp() { IdxTipo = int.Parse(sz_tokens[1].Trim().ToUpper()), Nome = sz_tokens[2].Trim().ToUpper() }; -#endif - Events_to_send.Add(sz_tokens[2].Trim().ToUpper(), int.Parse(sz_tokens[1].Trim().ToUpper())); - - //events2Add.Add(newEvent); + events2Add.Add(newEvent); break; @@ -385,8 +387,20 @@ namespace SMGen.Data.Services Log.Error(errMgs); } - Events_to_send = Events_to_send.Select(a => a.Value).Intersect(Rules.Select(b => b.id_event_to_send)).ToDictionary(x => x.ToString()); - foreach (var item in Events_to_send) + //Events_to_send = Events_to_send.Select(a => a.Value).Intersect(Rules.Select(b => b.id_event_to_send)).ToDictionary(x => x.ToString()); + + foreach (var ev in Events_to_send) + { + var rule2Ev = Rules.FirstOrDefault(x => x.event_to_send == ev.Key); + if (rule2Ev != null) + { + if (!evOk.ContainsKey(ev.Key)) + { + evOk.Add(ev.Key, ev.Value); + } + } + } + foreach (var item in evOk) { var newEvent = new AnagEventiModelTemp() { diff --git a/SMGen/Components/FilesList.razor.cs b/SMGen/Components/FilesList.razor.cs index 0090893..3e93475 100644 --- a/SMGen/Components/FilesList.razor.cs +++ b/SMGen/Components/FilesList.razor.cs @@ -89,6 +89,7 @@ namespace SMGen.Components protected async Task Read_rule_file_transitions() { + SMGDService.events2Add.Clear(); Files = await SMGDService.FilesGetAll(); foreach (var item in Files.OrderBy(x => x.Value.origFileName)) { @@ -111,6 +112,18 @@ namespace SMGen.Components } await InvokeAsync(() => StateHasChanged()); } +#if false + foreach (var ev in SMGDService.events2Add) + { + var currEv = SMGDService.eventsFromDb[ev.IdxTipo]; + + if (currEv != ev.Nome) + { + ev.Nome = currEv; + } + } +#endif + await SMGDService.AnagEventinInsert(SMGDService.events2Add); }