diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index ffb8d0d0..ac96ecb9 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Config/Config/serverConfig.xml b/Step.Config/Config/serverConfig.xml index dbc8112d..66484c93 100644 --- a/Step.Config/Config/serverConfig.xml +++ b/Step.Config/Config/serverConfig.xml @@ -1,7 +1,7 @@ - DEMO + SIEMENS true localhost 8080 diff --git a/Step.Database/Controllers/AlarmsController.cs b/Step.Database/Controllers/AlarmsController.cs index 72f16f95..a83bbb0e 100644 --- a/Step.Database/Controllers/AlarmsController.cs +++ b/Step.Database/Controllers/AlarmsController.cs @@ -26,14 +26,16 @@ namespace Step.Database.Controllers dbCtx.Dispose(); } - public List GetPaginatedWithFilter(string message, ALARM_TYPE type, int page, int pageSize, DateTime startDate, DateTime endDate, List userIds) + public List GetPaginatedWithFilter(string message, List types, int page, int pageSize, DateTime startDate, DateTime endDate, List userIds) { var occurrences = dbCtx .AlarmOccurrences .OrderBy(x => x.AlarmOccurrenceId) + .Include("Users") .Where(x => - x.TimeStamp >= startDate && x.TimeStamp <= endDate && x.Type == type - // && userIds.Any(y => x.Users.Select(z => z.UserId).Any(z => z == y)) + x.TimeStamp >= startDate && x.TimeStamp <= endDate + && types.Contains(x.Type) + && x.Users.Any(y => userIds.Any(z => z == y.UserId)) ) .Skip(page * pageSize) .Take(pageSize) diff --git a/Step.Model/Constants.cs b/Step.Model/Constants.cs index 6618b78e..01a735d9 100644 --- a/Step.Model/Constants.cs +++ b/Step.Model/Constants.cs @@ -207,7 +207,6 @@ namespace Step.Model public const string NC_SOFTKEY = "ncSoftkeys"; public const string USER_SOFTKEY = "userSoftkeys"; public const string HEADS_CMD = "headsCmd"; - public const string AXES_CMD = "axesCmd"; public const string TOOL_MANAGER = "toolManager"; public const string MAINTENANCE = "maintenance"; public const string AXES_SELECTION = "axesSoftkeys"; diff --git a/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs b/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs index 0cae7d20..99d36695 100644 --- a/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs +++ b/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs @@ -2,6 +2,7 @@ using Step.Model.DatabaseModels; using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -27,7 +28,8 @@ namespace Step.Model.DTOModels.AlarmModels public DateTime TimeStamp { get; set; } - + public List Users { get; set; } + public static explicit operator DTOAlarmHistoricModel(AlarmOccurrencesModel obj) { List processes = new List(); @@ -40,7 +42,7 @@ namespace Step.Model.DTOModels.AlarmModels } return new DTOAlarmHistoricModel() - { + { Id = obj.AlarmOccurrenceId, AlarmId = obj.AlarmOccurrenceId, Title = obj.AlarmDescription == null ? "" : obj.AlarmDescription.Title, @@ -48,20 +50,28 @@ namespace Step.Model.DTOModels.AlarmModels Processes = processes, Source = obj.Source, TimeStamp = obj.TimeStamp, - Type = obj.Type + Type = obj.Type, + Users = obj.Users.Select(x => x.UserId).ToList() }; } } - public struct DTOAlarmsFilterModel + public class DTOAlarmsFilterModel { - public int Page; - public int PageSize; - public string Title; - public ALARM_TYPE Type; - public DateTime StartDate; - public DateTime EndDate; - public List UserIds; + [Required] + public int Page { get; set; } + [Required] + public int PageSize { get; set; } + [Required] + public string Title { get; set; } + [Required] + public List Type { get; set; } + [Required] + public DateTime? StartDate { get; set; } + [Required] + public DateTime EndDate { get; set; } + [Required] + public List UserIds { get; set; } } public struct DTOAlarmsData diff --git a/Step/Controllers/SignalR/NcHub.cs b/Step/Controllers/SignalR/NcHub.cs index 9a573766..9b38245b 100644 --- a/Step/Controllers/SignalR/NcHub.cs +++ b/Step/Controllers/SignalR/NcHub.cs @@ -167,7 +167,7 @@ namespace Step.Controllers.SignalR } } - [SignalRAuthorize(FunctionAccess = AXES_CMD, Action = ACTIONS.WRITE)] + [SignalRAuthorize(FunctionAccess = AXES_SELECTION, Action = ACTIONS.WRITE)] public void SelectAxis(byte axisId) { using (NcHandler ncHandler = new NcHandler()) diff --git a/Step/Controllers/WebApi/ApiAlarmController.cs b/Step/Controllers/WebApi/ApiAlarmController.cs index 5f1899d3..4b21186a 100644 --- a/Step/Controllers/WebApi/ApiAlarmController.cs +++ b/Step/Controllers/WebApi/ApiAlarmController.cs @@ -4,6 +4,7 @@ using Step.Model.DTOModels.AlarmModels; using Step.Provider; using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.IO; using System.Linq; using System.Net; @@ -30,11 +31,16 @@ namespace Step.Controllers.WebApi //} [Route("paginated"), HttpPost] - public IHttpActionResult GetFiltered([FromBody]DTOAlarmsFilterModel data) + public IHttpActionResult GetDataPaginated([FromBody]DTOAlarmsFilterModel data) { + Validate(data); + var a = ModelState.Values.Select(x => x.Errors); + if (!ModelState.IsValid) + return BadRequest(ModelState); + using (AlarmsController alarm = new AlarmsController()) { - var alarms = alarm.GetPaginatedWithFilter(data.Title, data.Type, data.Page - 1, data.PageSize, data.StartDate, data.EndDate, data.UserIds); + var alarms = alarm.GetPaginatedWithFilter(data.Title, data.Type, data.Page - 1, data.PageSize, data.StartDate.Value, data.EndDate, data.UserIds); return Ok(alarms); }