diff --git a/MP.MONO.Data/Controllers/MpDbController.cs b/MP.MONO.Data/Controllers/MpDbController.cs
index 1127139..8a49015 100644
--- a/MP.MONO.Data/Controllers/MpDbController.cs
+++ b/MP.MONO.Data/Controllers/MpDbController.cs
@@ -261,32 +261,34 @@ namespace MP.MONO.Data.Controllers
///
/// Recupero lista sommatoria durata eventi allarme per analisi, ordinati in logica di pareto (Max-min)
///
- /// Id Macchina
+ /// Id Macchina
/// inizio analisi (evento deve iniziare/finire entro periodo)
/// fine analisi (evento deve iniziare/finire entro periodo)
/// durata minima evento per venire considerato, -1 = tutti
/// durata massima evento per venire considerato, -1 = tutti
///
- public List AlarmRecGetParetoDur(int MachineId, DateTime dtFrom, DateTime dtTo, int minDur = -1, int maxDur = -1)
+ public List AlarmRecGetParetoDur(int machineId, DateTime dtFrom, DateTime dtTo, int minDur = -1, int maxDur = -1)
{
List dbResult = new List();
using (MapoMonoContext localDbCtx = new MapoMonoContext())
{
try
{
- //dbResult = localDbCtx
- // .DbSetAlarmRec
- // .Where(x => x.MachineId == MachineId)
- // .Include(m => m.MachineNav)
- // .Include(m => m.AlarmListNav)
- // .OrderByDescending(x => x.DtStart)
- // .Skip(skipRec)
- // .Take(numRec)
- // .ToList();
+ dbResult = localDbCtx
+ .DbSetAlarmRec
+ .Where(x => x.MachineId == machineId
+ && (x.DtStart >= dtFrom && x.DtStart <= dtTo)
+ && (x.Duration >= minDur || minDur < 0)
+ && (x.Duration <= maxDur || maxDur < 0))
+ .GroupBy(g => g.AlarmId)
+ .Select(g => new AlarmDurationDTO() { MachineId = machineId, AlarmId = g.Key, Duration = g.Sum(x => x.Duration) })
+ .Include(m => m.MachineNav)
+ .Include(m => m.AlarmListNav)
+ .ToList();
}
catch (Exception exc)
{
- Log.Error($"Eccezione durante AlarmRecGetParetoFreq{Environment.NewLine}{exc}");
+ Log.Error($"Eccezione durante AlarmRecGetParetoDur{Environment.NewLine}{exc}");
}
}
return dbResult;