diff --git a/Step.Database/Controllers/AlarmsController.cs b/Step.Database/Controllers/AlarmsController.cs index e594ba71..aa62f027 100644 --- a/Step.Database/Controllers/AlarmsController.cs +++ b/Step.Database/Controllers/AlarmsController.cs @@ -59,7 +59,7 @@ namespace Step.Database.Controllers && ( (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 + || (x.Source == ALARM_SOURCE.PLC && plcAlarmDescIds.Contains(x.AlarmId))) // Check if message is contained in PLC messages ) .Skip(page * pageSize) // Paginate .Take(pageSize) @@ -116,21 +116,21 @@ namespace Step.Database.Controllers }; } - public AlarmDescriptionsModel FindById(int id) + public AlarmOccurrencesModel FindById(int id, ALARM_SOURCE source) { return dbCtx - .AlarmDescriptions - .Where(x => x.AlarmId == id) + .AlarmOccurrences + .Where(x => x.AlarmId == id && x.Source == source) .FirstOrDefault(); } #region NOTES - public List GetNotesByAlarmDescId(int alarmDescriptionId) + public List GetNotesByAlarmDescId(int alarmDescriptionId, ALARM_SOURCE source) { return dbCtx .AlarmsNotes - .Where(x => x.AlarmDescriptionId == alarmDescriptionId) // Filter by id + .Where(x => x.AlarmId == alarmDescriptionId && x.Source == source) // Filter by id .Select(x => new DTOAlarmNoteModel() // Convert to return model { Id = x.NoteId, @@ -156,15 +156,16 @@ namespace Step.Database.Controllers .FirstOrDefault(); } - public DTOAlarmNoteModel CreateNote(int userId, int alarmDescId, DTONewAlarmNoteModel newNote) + public DTOAlarmNoteModel CreateNote(int userId, int alarmId, ALARM_SOURCE source, DTONewAlarmNoteModel newNote) { // Create model AlarmNoteModel note = new AlarmNoteModel() { Message = newNote.Message, DateTime = DateTime.Now, - AlarmDescriptionId = alarmDescId, - UserId = userId + AlarmId = alarmId, + UserId = userId, + Source = source }; // Add & save into database dbCtx.AlarmsNotes.Add(note); @@ -197,11 +198,11 @@ namespace Step.Database.Controllers #region ATTACHMENT - public List FindAttachmentByAlarmDescId(int alarmDescId) + public List FindAttachmentByAlarmDescId(int alarmId, ALARM_SOURCE source) { return dbCtx .AlarmFiles - .Where(x => x.AlarmDescriptionId == alarmDescId) + .Where(x => x.AlarmId == alarmId && x.Source == source) .ToList(); } @@ -213,15 +214,16 @@ namespace Step.Database.Controllers .FirstOrDefault(); } - public AlarmFileModel AddAttachment(string fileName, string localFileName, int alarmDescId, int userId) + public AlarmFileModel AddAttachment(string fileName, string localFileName, int alarmId, int userId, ALARM_SOURCE source) { // Create obj AlarmFileModel file = new AlarmFileModel() { FileName = fileName, LocalFileName = localFileName, - AlarmDescriptionId = alarmDescId, - UserId = userId + AlarmId = alarmId, + UserId = userId, + Source = source }; // Add to db dbCtx.AlarmFiles.Add(file); diff --git a/Step.Database/Migrations/201811300854588_InitMigration.resx b/Step.Database/Migrations/201811300854588_InitMigration.resx deleted file mode 100644 index 36ec683e..00000000 --- a/Step.Database/Migrations/201811300854588_InitMigration.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/Step.Database/Migrations/201811300854588_InitMigration.Designer.cs b/Step.Database/Migrations/201901141353543_InitMigration.Designer.cs similarity index 92% rename from Step.Database/Migrations/201811300854588_InitMigration.Designer.cs rename to Step.Database/Migrations/201901141353543_InitMigration.Designer.cs index 3b07427a..dcb9006d 100644 --- a/Step.Database/Migrations/201811300854588_InitMigration.Designer.cs +++ b/Step.Database/Migrations/201901141353543_InitMigration.Designer.cs @@ -13,7 +13,7 @@ namespace Step.Database.Migrations string IMigrationMetadata.Id { - get { return "201811300854588_InitMigration"; } + get { return "201901141353543_InitMigration"; } } string IMigrationMetadata.Source diff --git a/Step.Database/Migrations/201811300854588_InitMigration.cs b/Step.Database/Migrations/201901141353543_InitMigration.cs similarity index 96% rename from Step.Database/Migrations/201811300854588_InitMigration.cs rename to Step.Database/Migrations/201901141353543_InitMigration.cs index 9ee3de80..68d35fef 100644 --- a/Step.Database/Migrations/201811300854588_InitMigration.cs +++ b/Step.Database/Migrations/201901141353543_InitMigration.cs @@ -24,14 +24,44 @@ namespace Step.Database.Migrations file_name = c.String(unicode: false), local_file_name = c.String(unicode: false), alarm_desc_id = c.Int(nullable: false), + source = c.Int(nullable: false), user_id = c.Int(), }) .PrimaryKey(t => t.id) - .ForeignKey("dbo.alarm_description", t => t.alarm_desc_id, cascadeDelete: true) + .ForeignKey("dbo.alarm_occurrence", t => t.alarm_desc_id, cascadeDelete: true) .ForeignKey("dbo.user", t => t.user_id) .Index(t => t.alarm_desc_id) .Index(t => t.user_id); + CreateTable( + "dbo.alarm_occurrence", + c => new + { + id = c.Int(nullable: false, identity: true), + alarm_id = c.Int(nullable: false), + alarm_description_id = c.Int(), + source = c.Int(nullable: false), + type = c.Int(nullable: false), + processes = c.Int(nullable: false), + timestamp = c.DateTime(nullable: false, precision: 0), + }) + .PrimaryKey(t => t.id) + .ForeignKey("dbo.alarm_description", t => t.alarm_description_id) + .Index(t => t.alarm_description_id); + + CreateTable( + "dbo.alarm_user", + c => new + { + user_id = c.Int(nullable: false), + alarm_occurence_id = c.Int(nullable: false), + }) + .PrimaryKey(t => new { t.user_id, t.alarm_occurence_id }) + .ForeignKey("dbo.alarm_occurrence", t => t.alarm_occurence_id, cascadeDelete: true) + .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true) + .Index(t => t.user_id) + .Index(t => t.alarm_occurence_id); + CreateTable( "dbo.user", c => new @@ -46,35 +76,6 @@ namespace Step.Database.Migrations }) .PrimaryKey(t => t.id); - CreateTable( - "dbo.alarm_occurrence", - c => new - { - id = c.Int(nullable: false, identity: true), - alarm_id = c.Int(), - source = c.Int(nullable: false), - type = c.Int(nullable: false), - processes = c.Int(nullable: false), - timestamp = c.DateTime(nullable: false, precision: 0), - plc_message_id = c.Int(), - }) - .PrimaryKey(t => t.id) - .ForeignKey("dbo.alarm_description", t => t.alarm_id) - .Index(t => t.alarm_id); - - CreateTable( - "dbo.alarm_user", - c => new - { - user_id = c.Int(nullable: false), - alarm_occurence_id = c.Int(nullable: false), - }) - .PrimaryKey(t => new { t.user_id, t.alarm_occurence_id }) - .ForeignKey("dbo.alarm_occurrence", t => t.alarm_occurence_id, cascadeDelete: true) - .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true) - .Index(t => t.user_id) - .Index(t => t.alarm_occurence_id); - CreateTable( "dbo.alarm_note", c => new @@ -83,10 +84,11 @@ namespace Step.Database.Migrations message = c.String(unicode: false), user_id = c.Int(nullable: false), alarm_desc_id = c.Int(nullable: false), + source = c.Int(nullable: false), timestamp = c.DateTime(nullable: false, precision: 0), }) .PrimaryKey(t => t.id) - .ForeignKey("dbo.alarm_description", t => t.alarm_desc_id, cascadeDelete: true) + .ForeignKey("dbo.alarm_occurrence", t => t.alarm_desc_id, cascadeDelete: true) .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true) .Index(t => t.user_id) .Index(t => t.alarm_desc_id); @@ -338,12 +340,12 @@ namespace Step.Database.Migrations DropForeignKey("dbo.shank", new[] { "magazine_id", "position_id" }, "dbo.magazine_position"); DropForeignKey("dbo.tool", "family_id", "dbo.family"); DropForeignKey("dbo.alarm_note", "user_id", "dbo.user"); - DropForeignKey("dbo.alarm_note", "alarm_desc_id", "dbo.alarm_description"); + DropForeignKey("dbo.alarm_note", "alarm_desc_id", "dbo.alarm_occurrence"); + DropForeignKey("dbo.alarm_file", "user_id", "dbo.user"); + DropForeignKey("dbo.alarm_file", "alarm_desc_id", "dbo.alarm_occurrence"); DropForeignKey("dbo.alarm_user", "user_id", "dbo.user"); DropForeignKey("dbo.alarm_user", "alarm_occurence_id", "dbo.alarm_occurrence"); - DropForeignKey("dbo.alarm_occurrence", "alarm_id", "dbo.alarm_description"); - DropForeignKey("dbo.alarm_file", "user_id", "dbo.user"); - DropForeignKey("dbo.alarm_file", "alarm_desc_id", "dbo.alarm_description"); + DropForeignKey("dbo.alarm_occurrence", "alarm_description_id", "dbo.alarm_description"); DropIndex("dbo.session", new[] { "machine_user_id" }); DropIndex("dbo.performed_maintenance", new[] { "maintainers_id" }); DropIndex("dbo.performed_maintenance", new[] { "maintenance" }); @@ -361,7 +363,7 @@ namespace Step.Database.Migrations DropIndex("dbo.alarm_note", new[] { "user_id" }); DropIndex("dbo.alarm_user", new[] { "alarm_occurence_id" }); DropIndex("dbo.alarm_user", new[] { "user_id" }); - DropIndex("dbo.alarm_occurrence", new[] { "alarm_id" }); + DropIndex("dbo.alarm_occurrence", new[] { "alarm_description_id" }); DropIndex("dbo.alarm_file", new[] { "user_id" }); DropIndex("dbo.alarm_file", new[] { "alarm_desc_id" }); DropTable("dbo.session"); @@ -380,9 +382,9 @@ namespace Step.Database.Migrations DropTable("dbo.tool"); DropTable("dbo.family"); DropTable("dbo.alarm_note"); + DropTable("dbo.user"); DropTable("dbo.alarm_user"); DropTable("dbo.alarm_occurrence"); - DropTable("dbo.user"); DropTable("dbo.alarm_file"); DropTable("dbo.alarm_description"); } diff --git a/Step.Database/Migrations/201901141353543_InitMigration.resx b/Step.Database/Migrations/201901141353543_InitMigration.resx new file mode 100644 index 00000000..600e8f7e --- /dev/null +++ b/Step.Database/Migrations/201901141353543_InitMigration.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Step.Database/Step.Database.csproj b/Step.Database/Step.Database.csproj index fba70262..e790874b 100644 --- a/Step.Database/Step.Database.csproj +++ b/Step.Database/Step.Database.csproj @@ -81,9 +81,9 @@ - - - 201811300854588_InitMigration.cs + + + 201901141353543_InitMigration.cs @@ -119,8 +119,8 @@ - - 201811300854588_InitMigration.cs + + 201901141353543_InitMigration.cs diff --git a/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs b/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs index 3d474719..5e4d8c4c 100644 --- a/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs +++ b/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs @@ -46,7 +46,7 @@ namespace Step.Model.DTOModels.AlarmModels return new DTOAlarmHistoricModel() { Id = obj.AlarmOccurrenceId, - AlarmId = obj.AlarmDescriptionId != null ? obj.AlarmDescriptionId.Value : obj.PlcMessageId.Value, + AlarmId = obj.AlarmId, Title = obj.AlarmDescription == null ? "" : obj.AlarmDescription.Title, // Description = obj.AlarmDescription == null ? "" : obj.AlarmDescription.Description, Processes = processes, diff --git a/Step.Model/DatabaseModels/AlarmFileModel.cs b/Step.Model/DatabaseModels/AlarmFileModel.cs index 5bf04376..28bd9792 100644 --- a/Step.Model/DatabaseModels/AlarmFileModel.cs +++ b/Step.Model/DatabaseModels/AlarmFileModel.cs @@ -5,6 +5,7 @@ using System.ComponentModel.DataAnnotations.Schema; using System.Linq; using System.Text; using System.Threading.Tasks; +using static Step.Model.Constants; namespace Step.Model.DatabaseModels { @@ -22,10 +23,13 @@ namespace Step.Model.DatabaseModels public string LocalFileName { get; set; } [Column("alarm_desc_id")] - public int AlarmDescriptionId { get; set; } + public int AlarmId { get; set; } - [ForeignKey("AlarmDescriptionId")] - public virtual AlarmDescriptionsModel AlarmDescription { get; set; } + [ForeignKey("AlarmId")] + public virtual AlarmOccurrencesModel AlarmOccurrence { get; set; } + + [Column("source")] + public ALARM_SOURCE Source { get; set; } [Column("user_id")] public int? UserId { get; set; } diff --git a/Step.Model/DatabaseModels/AlarmNoteModel.cs b/Step.Model/DatabaseModels/AlarmNoteModel.cs index 6668c864..ef224528 100644 --- a/Step.Model/DatabaseModels/AlarmNoteModel.cs +++ b/Step.Model/DatabaseModels/AlarmNoteModel.cs @@ -1,6 +1,7 @@ using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using static Step.Model.Constants; namespace Step.Model.DatabaseModels { @@ -21,10 +22,13 @@ namespace Step.Model.DatabaseModels public UserModel User { get; set; } [Column("alarm_desc_id")] - public int AlarmDescriptionId { get; set; } + public int AlarmId { get; set; } - [ForeignKey("AlarmDescriptionId")] - public virtual AlarmDescriptionsModel AlarmDescription { get; set; } + [ForeignKey("AlarmId")] + public virtual AlarmOccurrencesModel AlarmOccurrence { get; set; } + + [Column("source")] + public ALARM_SOURCE Source { get; set; } [Column("timestamp")] public DateTime DateTime { get; set; } diff --git a/Step.Model/DatabaseModels/AlarmOccurrencesModel.cs b/Step.Model/DatabaseModels/AlarmOccurrencesModel.cs index d68a1d06..1e56961f 100644 --- a/Step.Model/DatabaseModels/AlarmOccurrencesModel.cs +++ b/Step.Model/DatabaseModels/AlarmOccurrencesModel.cs @@ -12,8 +12,11 @@ namespace Step.Model.DatabaseModels [Key] [Column("id")] public int AlarmOccurrenceId { get; set; } - + [Column("alarm_id")] + public int AlarmId { get; set; } + + [Column("alarm_description_id")] [ForeignKey("AlarmDescription")] public int? AlarmDescriptionId { get; set; } @@ -29,8 +32,8 @@ namespace Step.Model.DatabaseModels [Column("timestamp")] public DateTime TimeStamp { get; set; } - [Column("plc_message_id")] - public int? PlcMessageId { get; set; } + //[Column("plc_message_id")] + //public int? PlcMessageId { get; set; } public AlarmDescriptionsModel AlarmDescription { get; set; } public List Users { get; set; } diff --git a/Step/Controllers/WebApi/ApiAlarmController.cs b/Step/Controllers/WebApi/ApiAlarmController.cs index 4a894e67..6111790e 100644 --- a/Step/Controllers/WebApi/ApiAlarmController.cs +++ b/Step/Controllers/WebApi/ApiAlarmController.cs @@ -52,9 +52,9 @@ namespace Step.Controllers.WebApi #region Note - [Route("{alarmDescId:int}/note"), HttpGet] + [Route("{alarmDescId:int}/{source:int}/note"), HttpGet] [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.ALARM_CMD, Action = ACTIONS.READ)] - public IHttpActionResult GetAlarmNotes(int alarmDescId) + public IHttpActionResult GetAlarmNotes(int alarmDescId, ALARM_SOURCE source) { if (!ModelState.IsValid) return BadRequest(ModelState); @@ -62,20 +62,20 @@ namespace Step.Controllers.WebApi using (AlarmsController alarmsController = new AlarmsController()) { // Check if alarm desc exists - AlarmDescriptionsModel dbAlarm = alarmsController.FindById(alarmDescId); + AlarmOccurrencesModel dbAlarm = alarmsController.FindById(alarmDescId, source); if (dbAlarm == null) return NotFound(); // Update data - List notes = alarmsController.GetNotesByAlarmDescId(alarmDescId); + List notes = alarmsController.GetNotesByAlarmDescId(alarmDescId, source); return Ok(notes); } } - [Route("{alarmDescId:int}/note"), HttpPost] + [Route("{alarmDescId:int}/{source:int}/note"), HttpPost] [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.ALARM_CMD, Action = ACTIONS.WRITE)] - public IHttpActionResult AddAlarmNote(int alarmDescId, DTONewAlarmNoteModel note) + public IHttpActionResult AddAlarmNote(int alarmDescId, ALARM_SOURCE source, DTONewAlarmNoteModel note) { if (!ModelState.IsValid) return BadRequest(ModelState); @@ -87,12 +87,12 @@ namespace Step.Controllers.WebApi using (AlarmsController alarmsController = new AlarmsController()) { // Check if alarm desc exists - AlarmDescriptionsModel dbAlarm = alarmsController.FindById(alarmDescId); + AlarmOccurrencesModel dbAlarm = alarmsController.FindById(alarmDescId, source); if (dbAlarm == null) return NotFound(); // Update data - DTOAlarmNoteModel notes = alarmsController.CreateNote(Convert.ToInt32(userId.Value), alarmDescId, note); + DTOAlarmNoteModel notes = alarmsController.CreateNote(Convert.ToInt32(userId.Value), alarmDescId, source, note); return Ok(notes); } @@ -160,18 +160,18 @@ namespace Step.Controllers.WebApi #region Attachment - [Route("{alarmDescId:int}/attachments"), HttpGet] + [Route("{alarmDescId:int}/{source:int}/attachments"), HttpGet] [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.ALARM_CMD, Action = ACTIONS.READ)] - public IHttpActionResult GetAttachmentsByAlarmId(int alarmDescId) + public IHttpActionResult GetAttachmentsByAlarmId(int alarmDescId, ALARM_SOURCE source) { using (AlarmsController alarmsController = new AlarmsController()) { // Check if alarm desc exists - AlarmDescriptionsModel dbAlarm = alarmsController.FindById(alarmDescId); + AlarmOccurrencesModel dbAlarm = alarmsController.FindById(alarmDescId, source); if (dbAlarm == null) return NotFound(); - List attachments = alarmsController.FindAttachmentByAlarmDescId(alarmDescId); + List attachments = alarmsController.FindAttachmentByAlarmDescId(alarmDescId, source); return Ok(attachments); } @@ -193,9 +193,9 @@ namespace Step.Controllers.WebApi } } - [Route("{alarmDescId:int}/attachment"), HttpPost] + [Route("{alarmDescId:int}/{source:int}/attachment"), HttpPost] [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.ALARM_CMD, Action = ACTIONS.WRITE)] - public async Task AddAttachment(int alarmDescId) + public async Task AddAttachment(int alarmDescId, ALARM_SOURCE source) { var identity = User.Identity as ClaimsIdentity; // Find user id from the bearer token @@ -216,7 +216,7 @@ namespace Step.Controllers.WebApi using (AlarmsController alarmsController = new AlarmsController()) { // Check if alarm desc exists - AlarmDescriptionsModel dbAlarm = alarmsController.FindById(alarmDescId); + AlarmOccurrencesModel dbAlarm = alarmsController.FindById(alarmDescId, source); if (dbAlarm == null) return NotFound(); @@ -226,7 +226,8 @@ namespace Step.Controllers.WebApi var fileName = Path.GetFileName(file.LocalFileName); files.Add(fileName); - attachment = alarmsController.AddAttachment(file.Headers.ContentDisposition.FileName.Replace("\"", string.Empty), fileName, alarmDescId, Convert.ToInt32(userId.Value)); + attachment = alarmsController + .AddAttachment(file.Headers.ContentDisposition.FileName.Replace("\"", string.Empty), fileName, alarmDescId, Convert.ToInt32(userId.Value), source); } } diff --git a/Step/Listeners/Database/SignalRDatabaseHandler.cs b/Step/Listeners/Database/SignalRDatabaseHandler.cs index 76c0422e..462f7724 100644 --- a/Step/Listeners/Database/SignalRDatabaseHandler.cs +++ b/Step/Listeners/Database/SignalRDatabaseHandler.cs @@ -102,6 +102,7 @@ namespace Step.Listeners.Database // Add nc alarms List alarmNewOccurrences = differences.NcAlarms.Select(x => new AlarmOccurrencesModel() { + AlarmId = (int)x.Id, AlarmDescriptionId = (int)x.Id, Type = ALARM_TYPE.ERROR, Processes = 0, @@ -112,6 +113,7 @@ namespace Step.Listeners.Database // Add processes alarms alarmNewOccurrences.AddRange(differences.ProcessAlarms.Select(x => new AlarmOccurrencesModel() { + AlarmId = (int)x.Id, AlarmDescriptionId = (int)x.Id, Type = ALARM_TYPE.ERROR, Processes = x.Process, @@ -151,12 +153,12 @@ namespace Step.Listeners.Database return new AlarmOccurrencesModel() { + AlarmId = (int)x.Id, AlarmDescriptionId = null, Type = x.IsWarning ? ALARM_TYPE.WARNING : ALARM_TYPE.ERROR, Processes = processesByte, TimeStamp = x.DateTime, Source = ALARM_SOURCE.PLC, - PlcMessageId = (int)x.Id }; }));