diff --git a/MP.MONO.Data/Controllers/MpDbController.cs b/MP.MONO.Data/Controllers/MpDbController.cs
index 59ae03e..fe38664 100644
--- a/MP.MONO.Data/Controllers/MpDbController.cs
+++ b/MP.MONO.Data/Controllers/MpDbController.cs
@@ -2,23 +2,14 @@
using MP.MONO.Core.DTO;
using MP.MONO.Data.DbModels;
using MP.MONO.Data.DTO;
-using MySqlConnector;
using NLog;
-using System.Collections.Generic;
using System.Diagnostics;
-using System.Reflection.PortableExecutable;
using static MP.MONO.Core.Enums;
namespace MP.MONO.Data.Controllers
{
public class MpDbController : IDisposable
{
- #region Private Fields
-
- private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
-
- #endregion Private Fields
-
#region Public Constructors
public MpDbController()
@@ -513,8 +504,8 @@ namespace MP.MONO.Data.Controllers
stopWatch.Start();
try
{
- // verifico non sia già aperto...
- // verifico eventuali items già aperti da NON dover aggiungere...
+ // verifico non sia già aperto... verifico eventuali items già aperti da NON
+ // dover aggiungere...
var stillOpenAlarms = localDbCtx
.DbSetAlarmRec
.Where(x => x.DtStart >= x.DtEnd && x.AlarmId == newItem.AlarmId)
@@ -589,7 +580,7 @@ namespace MP.MONO.Data.Controllers
newItems.Remove(singleItem);
}
}
- }
+ }
#endif
if (newItems.Count > 0)
@@ -695,6 +686,7 @@ namespace MP.MONO.Data.Controllers
}
return fatto;
}
+
///
/// Recupero DataLogDTO data condizione filtro
///
@@ -984,7 +976,6 @@ namespace MP.MONO.Data.Controllers
return currMachDto;
}
-
///
/// Recupero pareto status impianto
///
@@ -1263,7 +1254,6 @@ namespace MP.MONO.Data.Controllers
return fatto;
}
-
///
/// Inserimento di una lista record Production Log
///
@@ -1290,6 +1280,31 @@ namespace MP.MONO.Data.Controllers
return fatto;
}
+ ///
+ /// Effettua chiamata stored x pulizia dati stale/vecchi
+ ///
+ ///
+ ///
+ public List RemoveOldData(int numDay2Keep)
+ {
+ List dbResult = new List();
+ using (MapoMonoContext localDbCtx = new MapoMonoContext())
+ {
+ try
+ {
+ dbResult = localDbCtx
+ .DbSetTaskExec
+ .FromSqlRaw("CALL stp_removeOldData({0});", numDay2Keep)
+ .ToList();
+ }
+ catch (Exception exc)
+ {
+ Log.Error($"Eccezione durante RemoveOldData{Environment.NewLine}{exc}");
+ }
+ }
+ return dbResult;
+ }
+
///
/// genera elenco Task Schedulati missing da schema + attualmente presenti...
///
@@ -1366,69 +1381,6 @@ namespace MP.MONO.Data.Controllers
return answ;
}
-
- ///
- /// Inserisce un nuovo record status log calcolando durata da rec precedente..
- ///
- ///
- ///
- public async Task StatusLogInsert(StatusLogModel newRec)
- {
- bool answ = false;
- using (MapoMonoContext localDbCtx = new MapoMonoContext())
- {
- try
- {
- bool needInsert = false;
- // ultimo inserito...
- var lastRec = localDbCtx
- .DbSetStatusLog
- .Where(x => x.MachineId == newRec.MachineId)
- .OrderByDescending(x => x.DtRif)
- .FirstOrDefault();
-
- // se non trovato inserisco comunque
- if (lastRec == null)
- {
- needInsert = true;
- }
- // se trovato controllo variazione...
- else
- {
- // se cambia stato...
- if (lastRec.CodStatus != newRec.CodStatus)
- {
- needInsert = true;
- }
- // oppure se è passato il giorno...
- else if (lastRec.DtRif.Date < newRec.DtRif.Date)
- {
- needInsert = true;
- }
- // calcolo durata vecchio record...
- lastRec.Duration = (float)DateTime.Now.Subtract(lastRec.DtRif).TotalMinutes;
- }
-
- if (needInsert)
- {
- localDbCtx
- .DbSetStatusLog
- .Add(newRec);
- }
-
- // salvo
- localDbCtx.SaveChanges();
- answ = true;
- }
- catch (Exception exc)
- {
- Log.Error($"Eccezione durante StatusLogInsert{Environment.NewLine}{exc}");
- }
- }
- await Task.Delay(1);
- return answ;
- }
-
///
/// Recupero elenco Task Schedulati dati Macchina ed intervento "master"
///
@@ -1560,30 +1512,99 @@ namespace MP.MONO.Data.Controllers
}
///
- /// Effettua chiamata stored x pulizia dati stale/vecchi
+ /// Inserisce un nuovo record status log calcolando durata da rec precedente..
///
- ///
+ ///
///
- public List RemoveOldData(int numDay2Keep)
+ public async Task StatusLogInsert(StatusLogModel newRec)
{
- List dbResult = new List();
+ bool answ = false;
using (MapoMonoContext localDbCtx = new MapoMonoContext())
{
try
{
- dbResult = localDbCtx
- .DbSetTaskExec
- .FromSqlRaw("CALL stp_removeOldData({0});", numDay2Keep)
- .ToList();
+ bool needInsert = false;
+ // ultimo inserito...
+ var lastRec = localDbCtx
+ .DbSetStatusLog
+ .Where(x => x.MachineId == newRec.MachineId)
+ .OrderByDescending(x => x.DtRif)
+ .FirstOrDefault();
+
+ // se non trovato inserisco comunque
+ if (lastRec == null)
+ {
+ needInsert = true;
+ }
+ // se trovato controllo variazione...
+ else
+ {
+ // se cambia stato...
+ if (lastRec.CodStatus != newRec.CodStatus)
+ {
+ needInsert = true;
+ }
+ // oppure se è passato il giorno...
+ else if (lastRec.DtRif.Date < newRec.DtRif.Date)
+ {
+ needInsert = true;
+ }
+ // calcolo durata vecchio record...
+ lastRec.Duration = (float)DateTime.Now.Subtract(lastRec.DtRif).TotalMinutes;
+ }
+
+ if (needInsert)
+ {
+ localDbCtx
+ .DbSetStatusLog
+ .Add(newRec);
+ }
+
+ // salvo
+ localDbCtx.SaveChanges();
+ answ = true;
}
catch (Exception exc)
{
- Log.Error($"Eccezione durante RemoveOldData{Environment.NewLine}{exc}");
+ Log.Error($"Eccezione durante StatusLogInsert{Environment.NewLine}{exc}");
}
}
- return dbResult;
+ await Task.Delay(1);
+ return answ;
+ }
+
+ ///
+ /// Registrazione record esecuzione task x log
+ ///
+ ///
+ ///
+ public bool TaskExecInsertLog(List recList)
+ {
+ bool answ = false;
+ using (MapoMonoContext localDbCtx = new MapoMonoContext())
+ {
+ try
+ {
+ localDbCtx
+ .DbSetTaskExec
+ .AddRange(recList);
+ localDbCtx.SaveChanges();
+ answ = true;
+ }
+ catch (Exception exc)
+ {
+ Log.Error($"Eccezione durante TaskExecInsertLog{Environment.NewLine}{exc}");
+ }
+ }
+ return answ;
}
#endregion Public Methods
+
+ #region Private Fields
+
+ private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
+
+ #endregion Private Fields
}
}
\ No newline at end of file
diff --git a/MP.MONO.Data/SqlScripts/Stored/stp_removeOldData.sql b/MP.MONO.Data/SqlScripts/Stored/stp_removeOldData.sql
index 4af4ab5..fa1d08e 100644
--- a/MP.MONO.Data/SqlScripts/Stored/stp_removeOldData.sql
+++ b/MP.MONO.Data/SqlScripts/Stored/stp_removeOldData.sql
@@ -54,6 +54,15 @@ BEGIN
,'Cleanup StatusLog' AS CodTask
,CONCAT('Deleted ', CAST(ROW_COUNT() AS NCHAR), ' rows') AS Result;
+ -- TaskExec
+ DELETE
+ FROM TaskExec
+ WHERE DtRif <= @dt_min;
+ INSERT INTO TaskExec(DtRif, CodTask, Result)
+ SELECT CURRENT_TIMESTAMP AS DtRif
+ ,'Cleanup TaskExec' AS CodTask
+ ,CONCAT('Deleted ', CAST(ROW_COUNT() AS NCHAR), ' rows') AS Result;
+
COMMIT;