prova intersect

This commit is contained in:
zaccaria.majid
2023-08-07 15:09:14 +02:00
parent cf941dcede
commit ab6b2ea2a9
3 changed files with 45 additions and 13 deletions
+11 -6
View File
@@ -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!");
+21 -7
View File
@@ -231,10 +231,12 @@ namespace SMGen.Data.Services
private List<string> Bits { get; set; } = new List<string>();
private Dictionary<string, int> Events_to_send { get; set; } = new Dictionary<string, int>();
private Dictionary<string, int> evOk { get; set; } = new Dictionary<string, int>();
public List<AnagEventiModelTemp> events2Add { get; set; } = new List<AnagEventiModelTemp>();
private List<RuleClass> Rules { get; set; } = new List<RuleClass>();
private List<string> States { get; set; } = new List<string>();
private List<TransizioneIngressiModelTemp> TranInList2add { get; set; } = new List<TransizioneIngressiModelTemp>();
public Dictionary<int, string> eventsFromDb = new Dictionary<int, string>();
/// <summary>
/// Valuta un file di ruoles x ingressi 2 eventi e restituisce esito
/// </summary>
@@ -257,7 +259,7 @@ namespace SMGen.Data.Services
// recupero nome file x partire
string filePath = currFile.tempFileName;
string errMgs = "";
Dictionary<int, string> 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()
{
+13
View File
@@ -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);
}