diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index 84de318d..fd105868 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.Core/ThreadsFunctions.cs b/Step.Core/ThreadsFunctions.cs index 2a9be059..ab2971ef 100644 --- a/Step.Core/ThreadsFunctions.cs +++ b/Step.Core/ThreadsFunctions.cs @@ -1,6 +1,7 @@ using CMS_CORE_Library.Models; using Step.Core; using Step.Model.DTOModels; +using Step.Model.DTOModels.AlarmModels; using Step.Model.DTOModels.ToolModels; using Step.NC; using System.Collections.Generic; diff --git a/Step.Database/Controllers/AlarmsController.cs b/Step.Database/Controllers/AlarmsController.cs index 206e27b3..cdec0741 100644 --- a/Step.Database/Controllers/AlarmsController.cs +++ b/Step.Database/Controllers/AlarmsController.cs @@ -1,5 +1,5 @@ using Step.Model.DatabaseModels; -using Step.Model.DTOModels; +using Step.Model.DTOModels.AlarmModels; using System; using System.Collections.Generic; using System.Data.Entity; @@ -85,7 +85,7 @@ namespace Step.Database.Controllers dbCtx.SaveChanges(); } - + public void InsertNewAlarmUser(List loggedUser) { dbCtx.AlarmUsers.AddRange(loggedUser); @@ -93,7 +93,7 @@ namespace Step.Database.Controllers dbCtx.SaveChanges(); } - public AlarmsData GetAlarmsData(int pageSize) + public DTOAlarmsData GetAlarmsData(int pageSize) { // Get page numbers int pagesNumbers = dbCtx.AlarmOccurrences.Count() / pageSize; @@ -102,17 +102,69 @@ namespace Step.Database.Controllers // Get first alarm date DateTime date = firstAlarm == null ? DateTime.Now : firstAlarm.TimeStamp; - return new AlarmsData + return new DTOAlarmsData { Pages = pagesNumbers, FirstDate = date }; } - - public struct AlarmsData + + public AlarmDescriptionsModel FindById(int id) { - public int Pages; - public DateTime FirstDate; + return dbCtx + .AlarmDescriptions + .Where(x => x.AlarmId == id) + .FirstOrDefault(); } + + #region NOTES + + public AlarmNoteModel FindNoteById(int noteId) + { + return dbCtx + .AlarmsNotes + .Where(x => x.NoteId == noteId) + .Include("User") + .FirstOrDefault(); + } + + public DTOAlarmNoteModel CreateNote(int userId, int alarmDescId, DTONewAlarmNoteModel newNote) + { + // Create model + AlarmNoteModel note = new AlarmNoteModel() + { + Message = newNote.Message, + DateTime = DateTime.Now, + AlarmDescriptionId = alarmDescId, + UserId = userId + }; + // Add & save into database + dbCtx.AlarmsNotes.Add(note); + + dbCtx.SaveChanges(); + // Populate user data + dbCtx.Entry(note).Reference(x => x.User).Load(); + dbCtx.Users.Attach(note.User); + + return (DTOAlarmNoteModel)note; + } + + public DTOAlarmNoteModel UpdateNote(AlarmNoteModel note, DTONewAlarmNoteModel newNote) + { + note.Message = newNote.Message; + dbCtx.SaveChanges(); + + return (DTOAlarmNoteModel)note; + } + + public void DeleteNote(int noteId) + { + AlarmNoteModel note = FindNoteById(noteId); + dbCtx.AlarmsNotes.Remove(note); + + dbCtx.SaveChanges(); + } + + #endregion NOTES } } \ No newline at end of file diff --git a/Step.Database/Controllers/MaintenancesController.cs b/Step.Database/Controllers/MaintenancesController.cs index d2fa9f9b..b86d0df1 100644 --- a/Step.Database/Controllers/MaintenancesController.cs +++ b/Step.Database/Controllers/MaintenancesController.cs @@ -41,7 +41,6 @@ namespace Step.Database.Controllers return lastMaintenances; } - public PerformedMaintenanceModel PerformeMaintenance(uint counterValue, int maintenanceId, int userId) { PerformedMaintenanceModel performed = new PerformedMaintenanceModel() @@ -52,8 +51,8 @@ namespace Step.Database.Controllers MaintainerId = userId }; - dbCtx.PerformedMaintenances.Add(performed); - + dbCtx.PerformedMaintenances.Add(performed); + // Commit changes dbCtx.SaveChanges(); @@ -113,14 +112,14 @@ namespace Step.Database.Controllers { MaintenanceModel dbMaint = FindById(maintenanceId); - if(dbMaint != null) + if (dbMaint != null) { dbMaint.Title = newMaint.Title; dbMaint.Description = newMaint.Description; dbMaint.Deadline = newMaint.Deadline; dbMaint.Interval = newMaint.Interval; dbMaint.UnitOfMeasure = newMaint.UnitOfMeasure; - + // Commit changes dbCtx.SaveChanges(); } @@ -147,7 +146,7 @@ namespace Step.Database.Controllers .ToList(); // Find database rows that has to be deleted - List toDeleteMaint = dbMaintenances.Where(x => x.UserId == null && + List toDeleteMaint = dbMaintenances.Where(x => x.UserId == null && !MaintenancesConfig.Select(y => y.Id).Contains(x.MaintenanceId) ).ToList(); @@ -175,7 +174,7 @@ namespace Step.Database.Controllers old.MaintenanceId = x.Id; old.Deadline = x.Deadline; old.Interval = x.Intervall.TotalMinutes; - old.Type = (MAINTENANCE_TYPE) Enum.Parse(typeof(MAINTENANCE_TYPE), x.Type); + old.Type = (MAINTENANCE_TYPE)Enum.Parse(typeof(MAINTENANCE_TYPE), x.Type); old.CounterId = x.CouterId; old.UnitOfMeasure = (MAINTENANCE_UNIT_OF_MEASURE)Enum.Parse(typeof(MAINTENANCE_UNIT_OF_MEASURE), x.UnitOfMeasure); return old; @@ -195,7 +194,7 @@ namespace Step.Database.Controllers Type = (MAINTENANCE_TYPE)Enum.Parse(typeof(MAINTENANCE_TYPE), x.Type), CounterId = x.CouterId, CreationDate = DateTime.Now, - UnitOfMeasure = (MAINTENANCE_UNIT_OF_MEASURE) Enum.Parse(typeof(MAINTENANCE_UNIT_OF_MEASURE),x.UnitOfMeasure), + UnitOfMeasure = (MAINTENANCE_UNIT_OF_MEASURE)Enum.Parse(typeof(MAINTENANCE_UNIT_OF_MEASURE), x.UnitOfMeasure), UserId = null, LastExpirationDate = null }) @@ -237,7 +236,7 @@ namespace Step.Database.Controllers .MaintenancesNotes .ToList(); } - + public List GetNotesByMaintId(int maintenanceId) { return dbCtx @@ -255,7 +254,7 @@ namespace Step.Database.Controllers LastName = x.User.LastName, Username = x.User.Username } - }) + }) .ToList(); } @@ -288,7 +287,7 @@ namespace Step.Database.Controllers return (DTOMaintenanceNoteModel)note; } - public void DeleteMessage(int noteId) + public void DeleteNote(int noteId) { MaintenanceNoteModel note = FindNoteById(noteId); dbCtx.MaintenancesNotes.Remove(note); @@ -296,6 +295,10 @@ namespace Step.Database.Controllers dbCtx.SaveChanges(); } + #endregion Notes + + #region Attachment + public List FindAttachmentByMaintenance(int maintenanceId) { return dbCtx @@ -312,7 +315,7 @@ namespace Step.Database.Controllers .FirstOrDefault(); } - public MaintenanceFileModel AddAttachment(string fileName, string localFileName ,int maintenanceId, int userId) + public MaintenanceFileModel AddAttachment(string fileName, string localFileName, int maintenanceId, int userId) { MaintenanceFileModel file = new MaintenanceFileModel() { @@ -345,10 +348,11 @@ namespace Step.Database.Controllers dbCtx.MaintenanceFiles.Remove(attachment); dbCtx.SaveChanges(); - + if (File.Exists(MAINTENANCE_ATTACHMENT_PATH + attachment.LocalFileName)) File.Delete(MAINTENANCE_ATTACHMENT_PATH + attachment.LocalFileName); } - #endregion + + #endregion Attachment } } \ No newline at end of file diff --git a/Step.Database/Controllers/NcToolManagerController.cs b/Step.Database/Controllers/NcToolManagerController.cs index 2bf940c0..429c0a94 100644 --- a/Step.Database/Controllers/NcToolManagerController.cs +++ b/Step.Database/Controllers/NcToolManagerController.cs @@ -48,7 +48,7 @@ namespace Step.Database.Controllers { DbNcShankModel shank = FindShankWithTools(shankId); // Get only families id - int[] ids = shank.Tools.Select(x => x.FamilyId).ToArray(); + short[] ids = shank.Tools.Select(x => x.FamilyId).ToArray(); return FindFamilies() // Get Families .Where(x => ids.Contains(x.FamilyId)) // Filter by ids @@ -265,7 +265,7 @@ namespace Step.Database.Controllers return dtoTools; } - public DbNcToolModel AddTool(DTONewNcToolModel dtoTool, int toolId) + public DbNcToolModel AddTool(DTONewNcToolModel dtoTool, short toolId) { // Copy data DbNcToolModel dbTool = (DbNcToolModel)dtoTool; @@ -303,7 +303,7 @@ namespace Step.Database.Controllers return tool; } - public DbNcToolModel UpdateToolOffset(int toolId, int position, int offsetId) + public DbNcToolModel UpdateToolOffset(int toolId, int position, short offsetId) { DbNcToolModel tool = FindTool(toolId); @@ -378,7 +378,7 @@ namespace Step.Database.Controllers dbCtx.SaveChanges(); } - public DbNcShankModel AddShank(DTONewNcShankModel shank, int shankId = 0) + public DbNcShankModel AddShank(DTONewNcShankModel shank, short shankId = 0) { DbNcShankModel dbShank = (DbNcShankModel)shank; @@ -465,7 +465,7 @@ namespace Step.Database.Controllers return FindMagazinePosition(magazineId, positionId); } - public DTONcShankModel LoadToolIntoShank(DbNcToolModel tool, int shankId) + public DTONcShankModel LoadToolIntoShank(DbNcToolModel tool, short shankId) { dbCtx.Tools.Attach(tool); // Set tool shankId diff --git a/Step.Database/DatabaseContext.cs b/Step.Database/DatabaseContext.cs index 829791d7..0de6a26e 100644 --- a/Step.Database/DatabaseContext.cs +++ b/Step.Database/DatabaseContext.cs @@ -24,21 +24,23 @@ namespace Step.Database public DbSet Roles { get; set; } public DbSet FunctionsAccess { get; set; } public DbSet Sessions { get; set; } + public DbSet FavoriteUserSoftkeys { get; set; } + // Maintenances public DbSet Maintenances { get; set; } public DbSet PerformedMaintenances { get; set; } public DbSet MaintenancesNotes { get; set; } public DbSet MaintenanceFiles { get; set; } - public DbSet FavoriteUserSoftkeys { get; set; } - + // Tool tables public DbSet Families { get; set; } public DbSet Shanks { get; set; } public DbSet Tools { get; set; } public DbSet MagazinePositions { get; set; } public DbSet Queue { get; set; } - + // Alarms public DbSet AlarmDescriptions { get; set; } public DbSet AlarmOccurrences { get; set; } public DbSet AlarmUsers { get; set; } + public DbSet AlarmsNotes { get; set; } // Create migration string public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME + ";Uid=" + DATABASE_USER + ";Pwd=" + DATABASE_PWD + ";"; diff --git a/Step.Database/Migrations/201810160843025_InitMigration.resx b/Step.Database/Migrations/201810160843025_InitMigration.resx deleted file mode 100644 index 9955fe8d..00000000 --- a/Step.Database/Migrations/201810160843025_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/201810160843025_InitMigration.Designer.cs b/Step.Database/Migrations/201810231526097_InitMigration.Designer.cs similarity index 92% rename from Step.Database/Migrations/201810160843025_InitMigration.Designer.cs rename to Step.Database/Migrations/201810231526097_InitMigration.Designer.cs index 4f5d87bd..b588da35 100644 --- a/Step.Database/Migrations/201810160843025_InitMigration.Designer.cs +++ b/Step.Database/Migrations/201810231526097_InitMigration.Designer.cs @@ -13,7 +13,7 @@ namespace Step.Database.Migrations string IMigrationMetadata.Id { - get { return "201810160843025_InitMigration"; } + get { return "201810231526097_InitMigration"; } } string IMigrationMetadata.Source diff --git a/Step.Database/Migrations/201810160843025_InitMigration.cs b/Step.Database/Migrations/201810231526097_InitMigration.cs similarity index 90% rename from Step.Database/Migrations/201810160843025_InitMigration.cs rename to Step.Database/Migrations/201810231526097_InitMigration.cs index 8141a4df..2b2eed3c 100644 --- a/Step.Database/Migrations/201810160843025_InitMigration.cs +++ b/Step.Database/Migrations/201810231526097_InitMigration.cs @@ -58,11 +58,27 @@ namespace Step.Database.Migrations }) .PrimaryKey(t => t.id); + CreateTable( + "dbo.alarm_note", + c => new + { + id = c.Int(nullable: false, identity: true), + message = c.String(unicode: false), + user_id = c.Int(nullable: false), + alarm_desc_id = 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.user", t => t.user_id, cascadeDelete: true) + .Index(t => t.user_id) + .Index(t => t.alarm_desc_id); + CreateTable( "dbo.family", c => new { - id = c.Int(nullable: false), + id = c.Short(nullable: false), name = c.String(unicode: false), type = c.Byte(nullable: false), right_size = c.Byte(nullable: false), @@ -88,16 +104,16 @@ namespace Step.Database.Migrations "dbo.tool", c => new { - id = c.Int(nullable: false), - offset_length = c.Int(nullable: false), + id = c.Short(nullable: false), + offset_length = c.Short(nullable: false), residual_life = c.Int(nullable: false), residual_revive = c.Int(nullable: false), status = c.Byte(nullable: false), - family_id = c.Int(nullable: false), - shank_id = c.Int(), - offsetId1 = c.Int(), - offsetId2 = c.Int(), - offsetId3 = c.Int(), + family_id = c.Short(nullable: false), + shank_id = c.Short(), + offsetId1 = c.Short(), + offsetId2 = c.Short(), + offsetId3 = c.Short(), }) .PrimaryKey(t => t.id) .ForeignKey("dbo.family", t => t.family_id, cascadeDelete: true) @@ -111,7 +127,7 @@ namespace Step.Database.Migrations { magazine_id = c.Byte(), position_id = c.Byte(), - id = c.Int(nullable: false), + id = c.Short(nullable: false), balluf = c.Int(), magazine_position_type = c.Byte(nullable: false), }) @@ -302,6 +318,8 @@ namespace Step.Database.Migrations DropForeignKey("dbo.tool", "shank_id", "dbo.shank"); 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_user", "user_id", "dbo.user"); DropForeignKey("dbo.alarm_user", "alarm_occurence_id", "dbo.alarm_occurrence"); DropForeignKey("dbo.alarm_occurrence", "alarm_id", "dbo.alarm_description"); @@ -318,6 +336,8 @@ namespace Step.Database.Migrations DropIndex("dbo.shank", new[] { "magazine_id", "position_id" }); DropIndex("dbo.tool", new[] { "shank_id" }); DropIndex("dbo.tool", new[] { "family_id" }); + DropIndex("dbo.alarm_note", new[] { "alarm_desc_id" }); + 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" }); @@ -336,6 +356,7 @@ namespace Step.Database.Migrations DropTable("dbo.shank"); DropTable("dbo.tool"); DropTable("dbo.family"); + DropTable("dbo.alarm_note"); DropTable("dbo.user"); DropTable("dbo.alarm_user"); DropTable("dbo.alarm_occurrence"); diff --git a/Step.Database/Migrations/201810231526097_InitMigration.resx b/Step.Database/Migrations/201810231526097_InitMigration.resx new file mode 100644 index 00000000..0995e19a --- /dev/null +++ b/Step.Database/Migrations/201810231526097_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 881ca2ac..c124a8bb 100644 --- a/Step.Database/Step.Database.csproj +++ b/Step.Database/Step.Database.csproj @@ -81,9 +81,9 @@ - - - 201810160843025_InitMigration.cs + + + 201810231526097_InitMigration.cs @@ -119,8 +119,8 @@ - - 201810160843025_InitMigration.cs + + 201810231526097_InitMigration.cs diff --git a/Step.Model/DTOModels/DTOAlarmHistoricModel.cs b/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs similarity index 80% rename from Step.Model/DTOModels/DTOAlarmHistoricModel.cs rename to Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs index fb073504..fbcfdb26 100644 --- a/Step.Model/DTOModels/DTOAlarmHistoricModel.cs +++ b/Step.Model/DTOModels/AlarmModels/DTOAlarmHistoricModel.cs @@ -7,7 +7,7 @@ using System.Text; using System.Threading.Tasks; using static Step.Model.Constants; -namespace Step.Model.DTOModels +namespace Step.Model.DTOModels.AlarmModels { public class DTOAlarmHistoricModel { @@ -52,4 +52,20 @@ namespace Step.Model.DTOModels }; } } + + public struct DTOAlarmsFilterModel + { + public int Page; + public int PageSize; + public DateTime StartDate; + public DateTime EndDate; + public List UserIds; + } + + public struct DTOAlarmsData + { + public int Pages; + public DateTime FirstDate; + } + } diff --git a/Step.Model/DTOModels/DTOAlarmsModel.cs b/Step.Model/DTOModels/AlarmModels/DTOAlarmsModel.cs similarity index 98% rename from Step.Model/DTOModels/DTOAlarmsModel.cs rename to Step.Model/DTOModels/AlarmModels/DTOAlarmsModel.cs index cf39861d..516ed3e5 100644 --- a/Step.Model/DTOModels/DTOAlarmsModel.cs +++ b/Step.Model/DTOModels/AlarmModels/DTOAlarmsModel.cs @@ -3,8 +3,9 @@ using System.Collections.Generic; using System.Linq; using static CMS_CORE_Library.Models.DataStructures; -namespace Step.Model.DTOModels +namespace Step.Model.DTOModels.AlarmModels { + // Alarms from NC public class DTOAlarmsModel { public List NcAlarms { get; set; } diff --git a/Step.Model/DTOModels/AlarmModels/DTONewAlarmNoteModel.cs b/Step.Model/DTOModels/AlarmModels/DTONewAlarmNoteModel.cs new file mode 100644 index 00000000..138b6a13 --- /dev/null +++ b/Step.Model/DTOModels/AlarmModels/DTONewAlarmNoteModel.cs @@ -0,0 +1,37 @@ +using Step.Model.DatabaseModels; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Step.Model.DTOModels.AlarmModels +{ + public class DTONewAlarmNoteModel + { + [Required] + public string Message { get; set; } + } + + public class DTOAlarmNoteModel : DTONewAlarmNoteModel + { + public int Id { get; set; } + + public DateTime DateTime { get; set; } + + public DTOMessageUserModel User { get; set; } + + public static explicit operator DTOAlarmNoteModel(AlarmNoteModel note) + { + DTOMessageUserModel user = note.User != null ? (DTOMessageUserModel)note.User : null; + return new DTOAlarmNoteModel() + { + Id = note.NoteId, + DateTime = note.DateTime, + Message = note.Message, + User = user + }; + } + } +} diff --git a/Step.Model/DTOModels/ToolModels/DTONcFamilyModel.cs b/Step.Model/DTOModels/ToolModels/DTONcFamilyModel.cs index 826cd9af..3035e54a 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcFamilyModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcFamilyModel.cs @@ -158,7 +158,7 @@ namespace Step.Model.DTOModels.ToolModels public class DTONcFamilyModel : DTONewNcFamilyModel { - public int Id { get; set; } + public short Id { get; set; } public List ChildTools { get; set; } diff --git a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs index 019c771d..c4a0b2df 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs @@ -33,7 +33,7 @@ namespace Step.Model.DTOModels.ToolModels public class DTONcShankModel : DTONewNcShankModel { - public int Id { get; set; } + public short Id { get; set; } [Range(1, byte.MaxValue)] public byte? MagazineId { get; set; } diff --git a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs index 442ee711..8ff28cd4 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs @@ -9,7 +9,7 @@ namespace Step.Model.DTOModels.ToolModels public class DTONcTool { [Required] - public int OffsetLength { get; set; } + public short OffsetLength { get; set; } [Required] public int ResidualLife { get; set; } @@ -19,7 +19,7 @@ namespace Step.Model.DTOModels.ToolModels [Required] // Foreign keys - public int FamilyId { get; set; } + public short FamilyId { get; set; } [Required] public bool Disabled { get; set; } @@ -36,7 +36,7 @@ namespace Step.Model.DTOModels.ToolModels [Required] public bool CounterClockwiseRotation { get; set; } - public int? ShankId { get; set; } = null; + public short? ShankId { get; set; } = null; public static explicit operator DTONcTool(DbNcToolModel obj) { @@ -48,7 +48,7 @@ namespace Step.Model.DTOModels.ToolModels return new DTONcTool() { FamilyId = obj.FamilyId, - ShankId = obj.ShankId == null ? 0 : obj.ShankId.Value, + ShankId = (short)(obj.ShankId == null ? 0 : obj.ShankId.Value), OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive, @@ -89,7 +89,7 @@ namespace Step.Model.DTOModels.ToolModels public class DTONcToolModel : DTONewNcToolModel { - public int Id { get; set; } + public short Id { get; set; } public OffsetModel Offset1 { get; set; } @@ -148,11 +148,11 @@ namespace Step.Model.DTOModels.ToolModels public class DTONewNcToolModel : DTONcTool { - public int? OffsetId1 { get; set; } + public short? OffsetId1 { get; set; } - public int? OffsetId2 { get; set; } + public short? OffsetId2 { get; set; } - public int? OffsetId3 { get; set; } + public short? OffsetId3 { get; set; } public static explicit operator DTONewNcToolModel(DbNcToolModel obj) @@ -165,7 +165,7 @@ namespace Step.Model.DTOModels.ToolModels return new DTONewNcToolModel() { FamilyId = obj.FamilyId, - ShankId = obj.ShankId == null ? 0 : obj.ShankId.Value, + ShankId = (short)(obj.ShankId == null ? 0 : obj.ShankId.Value), OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive, diff --git a/Step.Model/DatabaseModels/AlarmDescriptionsModel.cs b/Step.Model/DatabaseModels/AlarmDescriptionsModel.cs index 2fe5bfb9..0225440b 100644 --- a/Step.Model/DatabaseModels/AlarmDescriptionsModel.cs +++ b/Step.Model/DatabaseModels/AlarmDescriptionsModel.cs @@ -18,8 +18,5 @@ namespace Step.Model.DatabaseModels [Column("title")] public string Title { get; set; } - - //[Column("description")] - //public string Description { get; set; } } } diff --git a/Step.Model/DatabaseModels/AlarmNoteModel.cs b/Step.Model/DatabaseModels/AlarmNoteModel.cs new file mode 100644 index 00000000..6668c864 --- /dev/null +++ b/Step.Model/DatabaseModels/AlarmNoteModel.cs @@ -0,0 +1,32 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Step.Model.DatabaseModels +{ + [Table("alarm_note")] + public class AlarmNoteModel + { + [Key] + [Column("id")] + public int NoteId { get; set; } + + [Column("message")] + public string Message { get; set; } + + [Column("user_id")] + public int UserId { get; set; } + + [ForeignKey("UserId")] + public UserModel User { get; set; } + + [Column("alarm_desc_id")] + public int AlarmDescriptionId { get; set; } + + [ForeignKey("AlarmDescriptionId")] + public virtual AlarmDescriptionsModel AlarmDescription { get; set; } + + [Column("timestamp")] + public DateTime DateTime { get; set; } + } +} \ No newline at end of file diff --git a/Step.Model/DatabaseModels/NcFamilyModel.cs b/Step.Model/DatabaseModels/NcFamilyModel.cs index 68cb7f7d..8e1ed9a5 100644 --- a/Step.Model/DatabaseModels/NcFamilyModel.cs +++ b/Step.Model/DatabaseModels/NcFamilyModel.cs @@ -11,7 +11,7 @@ namespace Step.Model.DatabaseModels [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Column("id")] - public int FamilyId { get; set; } + public short FamilyId { get; set; } [Column("name")] public string Name { get; set; } diff --git a/Step.Model/DatabaseModels/NcShankModel.cs b/Step.Model/DatabaseModels/NcShankModel.cs index 184f8cb4..49d9ef96 100644 --- a/Step.Model/DatabaseModels/NcShankModel.cs +++ b/Step.Model/DatabaseModels/NcShankModel.cs @@ -12,7 +12,7 @@ namespace Step.Model.DatabaseModels [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Column("id")] - public int ShankId { get; set; } + public short ShankId { get; set; } [Column("balluf")] public int? Balluf { get; set; } diff --git a/Step.Model/DatabaseModels/NcToolModel.cs b/Step.Model/DatabaseModels/NcToolModel.cs index 7b52ca22..b6c5e8d6 100644 --- a/Step.Model/DatabaseModels/NcToolModel.cs +++ b/Step.Model/DatabaseModels/NcToolModel.cs @@ -10,10 +10,10 @@ namespace Step.Model.DatabaseModels [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] [Column("id")] - public int ToolId { get; set; } + public short ToolId { get; set; } [Column("offset_length")] - public int OffsetLength { get; set; } + public short OffsetLength { get; set; } [Column("residual_life")] public int ResidualLife { get; set; } @@ -27,22 +27,22 @@ namespace Step.Model.DatabaseModels // Foreign keys [Column("family_id")] [ForeignKey("Family")] - public int FamilyId { get; set; } + public short FamilyId { get; set; } [Column("shank_id")] [DatabaseGenerated(DatabaseGeneratedOption.None)] [ForeignKey("Shank")] - public int? ShankId { get; set; } + public short? ShankId { get; set; } [Column("offsetId1")] - public int? OffsetId1 { get; set; } + public short? OffsetId1 { get; set; } [Column("offsetId2")] - public int? OffsetId2 { get; set; } + public short? OffsetId2 { get; set; } [Column("offsetId3")] - public int? OffsetId3 { get; set; } + public short? OffsetId3 { get; set; } public virtual DbNcFamilyModel Family { get; set; } public virtual DbNcShankModel Shank { get; set; } @@ -51,16 +51,16 @@ namespace Step.Model.DatabaseModels { return new NcToolModel() { - ToolId = (ushort)obj.ToolId, + ToolId = obj.ToolId, FamilyId = obj.FamilyId, - OffsetLength = (ushort)obj.OffsetLength, + OffsetLength = obj.OffsetLength, ResidualLife = (ushort)obj.ResidualLife, Status = obj.Status, ResidualRevive = (ushort)obj.ResidualRevive, - ShankId = obj.ShankId == null ? 0 : obj.ShankId.Value, - OffsetId1 = obj.OffsetId1 == null ? 0 : obj.OffsetId1.Value, - OffsetId2 = obj.OffsetId2 == null ? 0 : obj.OffsetId2.Value, - OffsetId3 = obj.OffsetId3 == null ? 0 : obj.OffsetId3.Value + ShankId = (short)(obj.ShankId == null ? 0 : obj.ShankId.Value), + OffsetId1 = (ushort)(obj.OffsetId1 == null ? 0 : obj.OffsetId1.Value), + OffsetId2 = (ushort)(obj.OffsetId2 == null ? 0 : obj.OffsetId2.Value), + OffsetId3 = (ushort)(obj.OffsetId3 == null ? 0 : obj.OffsetId3.Value) }; } } diff --git a/Step.Model/Step.Model.csproj b/Step.Model/Step.Model.csproj index 87a7f014..d6fe7772 100644 --- a/Step.Model/Step.Model.csproj +++ b/Step.Model/Step.Model.csproj @@ -72,6 +72,7 @@ + @@ -93,9 +94,10 @@ + - - + + diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index fd3a8457..a5b31ce3 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -7,6 +7,7 @@ using CMS_CORE_Library.Siemens; using Step.Database.Controllers; using Step.Model.DatabaseModels; using Step.Model.DTOModels; +using Step.Model.DTOModels.AlarmModels; using Step.Model.DTOModels.JobModels; using Step.Model.DTOModels.MaintenanceModels; using Step.Model.DTOModels.ToolModels; @@ -80,7 +81,7 @@ namespace Step.NC fileInfo = new InfoFile(); if (File.Exists(path)) - return GetQueueFileInfo(path, out fileInfo); + return LocalPartProgramFileInfo(path, out fileInfo); else return numericalControl.FILES_RGetFileInfo(path, ref fileInfo); } @@ -97,13 +98,14 @@ namespace Step.NC // If the program is a job if (program == PROGRAM_TYPE_ENUM.JOB) { + // Get selected process ushort selectedProcess = 0; cmsError = numericalControl.PROC_RSelectedProcess(ref selectedProcess); if (cmsError.IsError()) return cmsError; - + // Create folder path with process string jobFolderPath = JOB_TMP_DIRECTORY + "\\" + selectedProcess + "\\"; - + // Get job data DTOJobModel model = SupportFunctions.ReadExtractedJobMetadata(selectedProcess); if (model == null) return FILE_NOT_FOUND_ERROR; @@ -122,13 +124,13 @@ namespace Step.NC else { if (File.Exists(path)) - return GetQueueFileInfo(path, out fileInfo); + return LocalPartProgramFileInfo(path, out fileInfo); else return numericalControl.FILES_RGetFileInfo(path, ref fileInfo); } } - public CmsError GetQueueFileInfo(string path, out InfoFile fileInfo) + public CmsError LocalPartProgramFileInfo(string path, out InfoFile fileInfo) { FileInfo fileData = new FileInfo(path); StreamReader fileRead = new StreamReader(path); @@ -1691,7 +1693,7 @@ namespace Step.NC return cmsError; } - public CmsError AddTool(DTONewNcToolModel tool, out DTONcToolModel dtoTool, int toolId) + public CmsError AddTool(DTONewNcToolModel tool, out DTONcToolModel dtoTool, short toolId) { dtoTool = new DTONcToolModel(); @@ -1790,7 +1792,7 @@ namespace Step.NC return numericalControl.TOOLS_WOffset(offsetId, offsetData); } - public CmsError UpdateToolOffsetId(int toolId, int positionId, int offsetId, out DTONcToolModel toolWithOffsets) + public CmsError UpdateToolOffsetId(int toolId, int positionId, short offsetId, out DTONcToolModel toolWithOffsets) { toolWithOffsets = new DTONcToolModel(); @@ -2096,7 +2098,7 @@ namespace Step.NC } } - public DTONcShankModel LoadIntoShank(DbNcToolModel tool, int shankId) + public DTONcShankModel LoadIntoShank(DbNcToolModel tool, short shankId) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { diff --git a/Step.Utils/supportFunctions.cs b/Step.Utils/supportFunctions.cs index 5897bb3d..aed02537 100644 --- a/Step.Utils/supportFunctions.cs +++ b/Step.Utils/supportFunctions.cs @@ -114,14 +114,14 @@ namespace Step.Utils return objIds.Max() + 1; } - public static int GetFirstFreeId(IEnumerable objIds) + public static short GetFirstFreeId(IEnumerable objIds) { if (objIds.Count() == 0) return 1; - List listOfPossibleIds = Enumerable.Range(1, objIds.Max() + 1).ToList(); + List listOfPossibleIds = Enumerable.Range(1, objIds.Max() + 1).Select(x => (short)x).ToList(); - IEnumerable res = listOfPossibleIds.Except(objIds).ToList(); + IEnumerable res = listOfPossibleIds.Except(objIds).ToList(); if (res.Count() > 0) return res.First(); diff --git a/Step/Controllers/WebApi/AlarmController.cs b/Step/Controllers/WebApi/AlarmController.cs deleted file mode 100644 index 87a333b2..00000000 --- a/Step/Controllers/WebApi/AlarmController.cs +++ /dev/null @@ -1,53 +0,0 @@ -using Step.Database.Controllers; -using System; -using System.Collections.Generic; -using System.Web.Http; - -namespace Step.Controllers.WebApi -{ - [RoutePrefix("api/alarms")] - public class AlarmController : ApiController - { - [Route(""), HttpGet] - public IHttpActionResult GetAll(int page, int pageSize) - { - using (AlarmsController alarm = new AlarmsController()) - { - var a = alarm.GetPaginated(page, pageSize); - - return Ok(a); - } - } - - [Route("paginated"), HttpPost] - public IHttpActionResult GetFiltered([FromBody]AlarmsFilterModel data) - { - using (AlarmsController alarm = new AlarmsController()) - { - var alarms = alarm.GetPaginatedWithFilter(data.Page - 1, data.PageSize, data.StartDate, data.EndDate, data.UserIds); - - return Ok(alarms); - } - } - - [Route("data"), HttpPost] - public IHttpActionResult GetAlarmsData(int pageSize) - { - using (AlarmsController alarmController = new AlarmsController()) - { - var alarms = alarmController.GetAlarmsData(pageSize); - - return Ok(alarms); - } - } - - public struct AlarmsFilterModel - { - public int Page; - public int PageSize; - public DateTime StartDate; - public DateTime EndDate; - public List UserIds; - } - } -} \ No newline at end of file diff --git a/Step/Controllers/WebApi/ApiAlarmController.cs b/Step/Controllers/WebApi/ApiAlarmController.cs new file mode 100644 index 00000000..3ab6130c --- /dev/null +++ b/Step/Controllers/WebApi/ApiAlarmController.cs @@ -0,0 +1,135 @@ +using Step.Database.Controllers; +using System; +using System.Collections.Generic; +using System.Security.Claims; +using System.Web.Http; +using static Step.Model.Constants; +using System.Linq; +using Step.Model.DTOModels.MaintenanceModels; +using Step.Model.DTOModels.AlarmModels; +using Step.Model.DatabaseModels; + +namespace Step.Controllers.WebApi +{ + [RoutePrefix("api/alarm")] + public class ApiAlarmController : ApiController + { + [Route(""), HttpGet] + public IHttpActionResult GetAll(int page, int pageSize) + { + using (AlarmsController alarm = new AlarmsController()) + { + var a = alarm.GetPaginated(page, pageSize); + + return Ok(a); + } + } + + [Route("paginated"), HttpPost] + public IHttpActionResult GetFiltered([FromBody]DTOAlarmsFilterModel data) + { + using (AlarmsController alarm = new AlarmsController()) + { + var alarms = alarm.GetPaginatedWithFilter(data.Page - 1, data.PageSize, data.StartDate, data.EndDate, data.UserIds); + + return Ok(alarms); + } + } + + [Route("data"), HttpPost] + public IHttpActionResult GetAlarmsData(int pageSize) + { + using (AlarmsController alarmController = new AlarmsController()) + { + var alarms = alarmController.GetAlarmsData(pageSize); + + return Ok(alarms); + } + } + + // Note + + [Route("{alarmDescId:int}/note"), HttpPost] + [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.WRITE)] + public IHttpActionResult AddAlarmNote(int alarmDescId, DTONewAlarmNoteModel note) + { + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var identity = User.Identity as ClaimsIdentity; + // Find user id from the bearer token + var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + + using (AlarmsController alarmsController = new AlarmsController()) + { + // Check if maintenance id + AlarmDescriptionsModel dbMaint = alarmsController.FindById(alarmDescId); + if (dbMaint == null) + return NotFound(); + + // Update data + DTOAlarmNoteModel notes = alarmsController.CreateNote(Convert.ToInt32(userId.Value), alarmDescId, note); + + return Ok(notes); + } + } + + [Route("{alarmDescId:int}/note/{noteId:int}"), HttpPut] + [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)] + public IHttpActionResult EditAlarmNote(int noteId, DTONewAlarmNoteModel newNote) + { + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var identity = User.Identity as ClaimsIdentity; + // Find user id from the bearer token + var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + + using (AlarmsController alarmsController = new AlarmsController()) + { + // Check if maintenance id + AlarmNoteModel dbNote = alarmsController.FindNoteById(noteId); + if (dbNote == null) + return NotFound(); + + // Check if user is different + if (dbNote.UserId != Convert.ToInt32(userId.Value)) + return Unauthorized(); + + // Update data + DTOAlarmNoteModel notes = alarmsController.UpdateNote(dbNote, newNote); + + return Ok(notes); + } + } + + [Route("{alarmDescId:int}/note/{noteId:int}"), HttpDelete] + [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.WRITE)] + public IHttpActionResult DeleteAlarmNote(int noteId) + { + if (!ModelState.IsValid) + return BadRequest(ModelState); + + var identity = User.Identity as ClaimsIdentity; + // Find user id from the bearer token + var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + + using (AlarmsController alarmsController = new AlarmsController()) + { + // Check if maintenance id + AlarmNoteModel dbNote = alarmsController.FindNoteById(noteId); + if (dbNote == null) + return NotFound(); + + // Check if user is different + if (dbNote.UserId != Convert.ToInt32(userId.Value)) + return Unauthorized(); + + // Update data + alarmsController.DeleteNote(dbNote.NoteId); + + return Ok(); + } + } + } +} \ No newline at end of file diff --git a/Step/Controllers/WebApi/MaintenanceController.cs b/Step/Controllers/WebApi/ApiMaintenanceController.cs similarity index 99% rename from Step/Controllers/WebApi/MaintenanceController.cs rename to Step/Controllers/WebApi/ApiMaintenanceController.cs index d681bd06..072b8d87 100644 --- a/Step/Controllers/WebApi/MaintenanceController.cs +++ b/Step/Controllers/WebApi/ApiMaintenanceController.cs @@ -23,7 +23,7 @@ using static Step.Model.Constants; namespace Step.Controllers.WebApi { [RoutePrefix("api/maintenance_manager")] - public class MaintenanceController : ApiController + public class ApiMaintenanceController : ApiController { [Route("maintenances"), HttpGet] [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.MAINTENANCE, Action = ACTIONS.READ)] @@ -249,7 +249,7 @@ namespace Step.Controllers.WebApi return Unauthorized(); // Update data - maintenancesController.DeleteMessage(dbNote.Id); + maintenancesController.DeleteNote(dbNote.Id); return Ok(); } diff --git a/Step/Controllers/WebApi/ConfigurationController.cs b/Step/Controllers/WebApi/ConfigurationController.cs index 5cd2d144..4abacfad 100644 --- a/Step/Controllers/WebApi/ConfigurationController.cs +++ b/Step/Controllers/WebApi/ConfigurationController.cs @@ -1,6 +1,7 @@ using CMS_CORE_Library.Models; using Step.Database.Controllers; using Step.Model.DTOModels; +using Step.Model.DTOModels.AlarmModels; using Step.NC; using System.Collections.Generic; using System.Linq; @@ -73,7 +74,7 @@ namespace Step.Controllers.WebApi config[softkey.Category].Add(softkey); } } - + return Ok(config); } @@ -83,7 +84,7 @@ namespace Step.Controllers.WebApi List heads = HeadsConfig.Select(x => new DTOHeadsConfigModel() { Id = x.Id, - Name = "Head "+ x.Id, + Name = "Head " + x.Id, Type = x.Type.ToString() }).ToList(); @@ -122,7 +123,7 @@ namespace Step.Controllers.WebApi ncHandler.Connect(); CmsError libraryError = ncHandler.GetToolTableConfiguration(out ToolTableConfiguration toolTableConfiguration); if (libraryError.IsError()) - return BadRequest(libraryError.localizationKey); + return BadRequest(libraryError.localizationKey); return Ok(toolTableConfiguration); } diff --git a/Step/Controllers/WebApi/NcToolManagerController.cs b/Step/Controllers/WebApi/NcToolManagerController.cs index 035783d7..3ebb1871 100644 --- a/Step/Controllers/WebApi/NcToolManagerController.cs +++ b/Step/Controllers/WebApi/NcToolManagerController.cs @@ -58,7 +58,7 @@ namespace Step.Controllers.WebApi if (!ModelState.IsValid) return BadRequest(ModelState); - int id = 0; + short id = 0; using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if option is active @@ -642,7 +642,7 @@ namespace Step.Controllers.WebApi } [Route("shank/{shankId:int}/load/tool/{toolId:int}"), HttpPut] - public IHttpActionResult LoadToolIntoShank(int shankId, int toolId) + public IHttpActionResult LoadToolIntoShank(short shankId, int toolId) { if (!ModelState.IsValid) return BadRequest(ModelState); diff --git a/Step/Listeners/Database/SignalRDatabaseHandler.cs b/Step/Listeners/Database/SignalRDatabaseHandler.cs index 24c516f2..f3045c6e 100644 --- a/Step/Listeners/Database/SignalRDatabaseHandler.cs +++ b/Step/Listeners/Database/SignalRDatabaseHandler.cs @@ -1,9 +1,9 @@ using Step.Database.Controllers; using Step.Model.DatabaseModels; using Step.Model.DTOModels; +using Step.Model.DTOModels.AlarmModels; using Step.Model.DTOModels.ToolModels; using Step.NC; -using Step.Utils; using System.Collections.Generic; using System.Linq; using static Step.Listeners.SignalRStaticObjects; @@ -111,9 +111,9 @@ namespace Step.Listeners.Database Processes = x.Process, TimeStamp = x.DateTime, })); - - // Check if NC - if(alarmNewOccurrences.Count > 0) + + // Check if NC + if (alarmNewOccurrences.Count > 0) { // Add new voices List alarmDescriptions = differences.NcAlarms.Select(x => new AlarmDescriptionsModel() @@ -129,14 +129,14 @@ namespace Step.Listeners.Database Title = x.Message })); // Check if there are descriptions - if(alarmDescriptions.Count() > 0) + if (alarmDescriptions.Count() > 0) using (AlarmsController alarmController = new AlarmsController()) // Add db missing descriptions alarmController.InsertNewNcAlarmDescriptions(alarmDescriptions); } // Add plc alarms - alarmNewOccurrences.AddRange(differences.PlcAlarms.Select(x => + alarmNewOccurrences.AddRange(differences.PlcAlarms.Select(x => { int processesByte = 0; x.Process.ForEach(y => processesByte |= (1 << y)); @@ -150,7 +150,7 @@ namespace Step.Listeners.Database })); // If there are new elements then update database - if(alarmNewOccurrences.Count() > 0) + if (alarmNewOccurrences.Count() > 0) { using (AlarmsController alarmController = new AlarmsController()) { @@ -175,7 +175,7 @@ namespace Step.Listeners.Database } } // Check if there are logged users - if(loggedUsers.Count() > 0) + if (loggedUsers.Count() > 0) alarmController.InsertNewAlarmUser(loggedUsers); } } diff --git a/Step/Listeners/ListenersHandler.cs b/Step/Listeners/ListenersHandler.cs index a4e423a8..51c15a8c 100644 --- a/Step/Listeners/ListenersHandler.cs +++ b/Step/Listeners/ListenersHandler.cs @@ -1,6 +1,7 @@ using Step.Listeners.Database; using Step.Listeners.SignalR; using Step.Model.DTOModels; +using Step.Model.DTOModels.AlarmModels; using System.Collections.Generic; using TeamDev.SDK.MVVM; using static Step.Model.Constants; diff --git a/Step/Listeners/SignalR/SignalRListener.cs b/Step/Listeners/SignalR/SignalRListener.cs index d39c2394..7c55ae3b 100644 --- a/Step/Listeners/SignalR/SignalRListener.cs +++ b/Step/Listeners/SignalR/SignalRListener.cs @@ -2,6 +2,7 @@ using Step.Config; using Step.Controllers.SignalR; using Step.Model.DTOModels; +using Step.Model.DTOModels.AlarmModels; using Step.Model.DTOModels.ToolModels; using Step.Utils; using System; @@ -15,7 +16,6 @@ namespace Step.Listeners.SignalR { public static class SignalRListener { - public static void SendAlarmsToClient(DTOAlarmsModel newAlarmsData) { var context = GlobalHost.ConnectionManager.GetHubContext(); @@ -196,7 +196,7 @@ namespace Step.Listeners.SignalR if (!LastProgramData.Equals(programData)) { LastProgramData = programData as DTOActiveProgramDataModel; - + context.Clients.Group("ncData").activeProgramData(programData); } } @@ -209,7 +209,7 @@ namespace Step.Listeners.SignalR { LastNcMagazineIsActive = newStatus; - context.Clients.Group("ncData").magazineIsActive(newStatus); + context.Clients.Group("ncData").magazineIsActive(newStatus); } } @@ -221,7 +221,7 @@ namespace Step.Listeners.SignalR { LastPartProgramQueue = new List(); - foreach(var queueItem in newQueue) + foreach (var queueItem in newQueue) { DTOQueueModel tmp = new DTOQueueModel(); SupportFunctions.CopyProperties(queueItem, tmp); @@ -272,7 +272,7 @@ namespace Step.Listeners.SignalR context.Clients.Group("ncData").headsData(LastHeadsData); // Send axesNames data context.Clients.Group("ncData").axesNames(LastAxesNamesData); - // Send magazine status + // Send magazine status context.Clients.Group("ncData").magazinesStatus(LastMagazineStatus); // Send positions context.Clients.Group("ncData").axesPositions(LastAxesPositions); diff --git a/Step/Listeners/SignalRStaticObjects.cs b/Step/Listeners/SignalRStaticObjects.cs index fccb115e..fdd2363c 100644 --- a/Step/Listeners/SignalRStaticObjects.cs +++ b/Step/Listeners/SignalRStaticObjects.cs @@ -1,4 +1,5 @@ using Step.Model.DTOModels; +using Step.Model.DTOModels.AlarmModels; using Step.Model.DTOModels.ToolModels; using System.Collections.Generic; diff --git a/Step/Step.csproj b/Step/Step.csproj index f6a59469..1589b788 100644 --- a/Step/Step.csproj +++ b/Step/Step.csproj @@ -170,12 +170,12 @@ - + - +