diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index 4f7ecbde..bacd17f5 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Database/Controllers/AlarmsController.cs b/Step.Database/Controllers/AlarmsController.cs index 2e47b214..87a0b57b 100644 --- a/Step.Database/Controllers/AlarmsController.cs +++ b/Step.Database/Controllers/AlarmsController.cs @@ -28,21 +28,27 @@ namespace Step.Database.Controllers dbCtx.Dispose(); } - public List GetPaginatedWithFilter(string title, List types, int page, int pageSize, DateTime startDate, DateTime endDate, List userIds, Dictionary plcMessages) + public List GetPaginatedWithFilter(string title, List types, int page, int pageSize, DateTime startDate, DateTime endDate, List userIds, Dictionary plcMessages) { + bool ifNoUser = false; + var index = userIds.IndexOf(-1); + if (userIds.IndexOf(-1) != -1) + ifNoUser = true; + List ncAlarmDescIds = dbCtx .AlarmDescriptions .Where(x => x.Title.Contains(title)) .Select(x => x.AlarmId) .ToList(); - // Add Plc messages + // Get Plc messages ids List plcAlarmDescIds = plcMessages .Where(x => x.Value.Contains(title)) .Select(x => x.Key) .ToList(); + // Query var occurrencesQuery = dbCtx .AlarmOccurrences .OrderBy(x => x.AlarmOccurrenceId) @@ -50,7 +56,7 @@ namespace Step.Database.Controllers .Where(x => x.TimeStamp >= startDate && x.TimeStamp <= endDate // Filter by date && types.Contains(x.Type) // Type - && x.Users.Any(y => userIds.Any(z => z == y.UserId)) // Check user + && ( (ifNoUser && x.Users.Count() == 0) || x.Users.Any(y => userIds.Any(z => z == y.UserId))) // Check user && ((x.Source == ALARM_SOURCE.NC && ncAlarmDescIds.Contains(x.AlarmDescriptionId.Value)) // Check if message is contained in NC messages || (x.Source == ALARM_SOURCE.PLC && plcAlarmDescIds.Contains(x.PlcMessageId.Value))) // Check if message is contained in PLC messages @@ -61,7 +67,7 @@ namespace Step.Database.Controllers .ToList(); return occurrencesQuery - .Select(x => (DTOAlarmHistoricModel)x) + .Select(x => (DTOAlarmHistoricModel)x) // Convert to DTOALarmHistoricModel .ToList(); }