Fix fanuc

Added noUserLogged filter in Alarms
This commit is contained in:
Lucio Maranta
2018-11-22 17:30:59 +01:00
parent 0e009dc6ec
commit bb31d3fe84
2 changed files with 10 additions and 4 deletions
+10 -4
View File
@@ -28,21 +28,27 @@ namespace Step.Database.Controllers
dbCtx.Dispose();
}
public List<DTOAlarmHistoricModel> GetPaginatedWithFilter(string title, List<ALARM_TYPE> types, int page, int pageSize, DateTime startDate, DateTime endDate, List<int> userIds, Dictionary<int, string> plcMessages)
public List<DTOAlarmHistoricModel> GetPaginatedWithFilter(string title, List<ALARM_TYPE> types, int page, int pageSize, DateTime startDate, DateTime endDate, List<int?> userIds, Dictionary<int, string> plcMessages)
{
bool ifNoUser = false;
var index = userIds.IndexOf(-1);
if (userIds.IndexOf(-1) != -1)
ifNoUser = true;
List<int> ncAlarmDescIds = dbCtx
.AlarmDescriptions
.Where(x => x.Title.Contains(title))
.Select(x => x.AlarmId)
.ToList();
// Add Plc messages
// Get Plc messages ids
List<int> 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();
}