diff --git a/WebDoorCreator.API/Controllers/QueueController.cs b/WebDoorCreator.API/Controllers/QueueController.cs index 72c11c6..1335afa 100644 --- a/WebDoorCreator.API/Controllers/QueueController.cs +++ b/WebDoorCreator.API/Controllers/QueueController.cs @@ -11,11 +11,12 @@ namespace WebDoorCreator.API.Controllers { #region Public Constructors - public QueueController(IConfiguration configuration, QueueDataService DataService) + public QueueController(IConfiguration configuration, QueueDataService DataService, WebDoorCreatorService _WDService) { Log.Info("Starting QueueController"); _configuration = configuration; QDataServ = DataService; + WDService = _WDService; Log.Info("Avviato QueueController"); } @@ -93,9 +94,9 @@ namespace WebDoorCreator.API.Controllers /* -------------- * da riscrivere - * - server record x cancellazione logica delle porte - * - il record (boolean, toDelete...) indica azione richeista - * - si prendono TUTTE le prote da DB con toDelete == true + * - server record x cancellazione logica delle porte OK + * - il record (boolean, toDelete...) indica azione richiesta OK + * - si prendono TUTTE le porte da DB con toDelete == true ok * - si eliminano su REDIS dalle 4 code (req, processing, error, done) * - check delle code processing, SE ci sono record rimasti li cerco sul DB * - se NON ci sono sul db --> li elimino da processing @@ -104,6 +105,10 @@ namespace WebDoorCreator.API.Controllers * - proseguo come ora (sposto tra code processing --> request) */ + var doors2Del = await WDService.DoorGet2Del(); + + + bool fatto = await QDataServ.ResetQueueProcessing(); answ = fatto ? "OK" : "NO"; return answ; @@ -171,6 +176,7 @@ namespace WebDoorCreator.API.Controllers #region Private Properties private QueueDataService QDataServ { get; set; } = null!; + private WebDoorCreatorService WDService { get; set; } = null!; #endregion Private Properties } diff --git a/WebDoorCreator.Data/Controllers/WebDoorCreatorController.cs b/WebDoorCreator.Data/Controllers/WebDoorCreatorController.cs index adc84fa..c5ec902 100644 --- a/WebDoorCreator.Data/Controllers/WebDoorCreatorController.cs +++ b/WebDoorCreator.Data/Controllers/WebDoorCreatorController.cs @@ -226,6 +226,31 @@ namespace WebDoorCreator.Data.Controllers } return dbResult; } + /// + /// Getting door list 2 delete + /// + /// + public List? DoorGet2Del() + { + List? dbResult = new List(); + // retrieving data from db + using (WDCDataContext localDbCtx = new WDCDataContext(_configuration)) + { + try + { + // extracting entire set + dbResult = localDbCtx.DbSetDoor + .Where(x => x.isLogicDel) + .AsNoTracking() + .ToList(); + } + catch (Exception exc) + { + Log.Error($"Error in DoorGet2Del:{Environment.NewLine}{exc}"); + } + } + return dbResult; + } /// /// Adding a new door diff --git a/WebDoorCreator.Data/Services/WebDoorCreatorService.cs b/WebDoorCreator.Data/Services/WebDoorCreatorService.cs index 320e288..0d2294a 100644 --- a/WebDoorCreator.Data/Services/WebDoorCreatorService.cs +++ b/WebDoorCreator.Data/Services/WebDoorCreatorService.cs @@ -1110,6 +1110,27 @@ namespace WebDoorCreator.Data.Services return dbResult; } + /// + /// Doors key (DoorId) + /// + public async Task?> DoorGet2Del() + { + await Task.Delay(1); + string source = "DB"; + List? dbResult = new List(); + Stopwatch stopWatch = new Stopwatch(); + stopWatch.Start(); + dbResult = dbController.DoorGet2Del(); + if (dbResult == null) + { + dbResult = new List(); + } + stopWatch.Stop(); + TimeSpan ts = stopWatch.Elapsed; + Log.Debug($"DoorGet2Del | {source} in: {ts.TotalMilliseconds} ms"); + return dbResult; + } + /// /// Doors list by numRec ///