diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index fac6eede..568e583d 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Database/Controllers/NcToolManagerController.cs b/Step.Database/Controllers/NcToolManagerController.cs index 7916c555..551a35d7 100644 --- a/Step.Database/Controllers/NcToolManagerController.cs +++ b/Step.Database/Controllers/NcToolManagerController.cs @@ -52,14 +52,17 @@ namespace Step.Database.Controllers public NcFamilyModel FindFamily(int familyId) { - return dbCtx.Families - .Where(x => x.FamilyId == familyId) - .FirstOrDefault(); + return dbCtx + .Families + .Where(x => x.FamilyId == familyId) + .FirstOrDefault(); } public List GetTools() { - List tools = dbCtx.Tools.Include("Family") + List tools = dbCtx + .Tools + .Include("Family") .Include("Shank") .ToList(); @@ -80,7 +83,15 @@ namespace Step.Database.Controllers return positions; } - public NcMagazinePositionModel GetPosition(byte magId, byte posId) + public List GetMagazinePositions(byte magId) + { + return dbCtx + .MagazinePositions + .Where(x => x.MagazineId == magId) + .ToList(); + } + + public NcMagazinePositionModel GetMagazinePosition(byte magId, byte posId) { NcMagazinePositionModel positions = dbCtx .MagazinePositions @@ -103,6 +114,9 @@ namespace Step.Database.Controllers dbCtx.Tools.Add(tool); dbCtx.SaveChanges(); + + dbCtx.Entry(tool).Reference(x => x.Family).Load(); + dbCtx.Entry(tool).Reference(x => x.Shank).Load(); return tool; } @@ -111,7 +125,7 @@ namespace Step.Database.Controllers { tool.FamilyId = dtoTool.FamilyId; tool.Type = dtoTool.Type; - tool.OffsetLenght = dtoTool.OffsetLenght; + tool.OffsetLength = dtoTool.OffsetLength; tool.ResidualLife = dtoTool.ResidualLife; tool.ResidualRevive = dtoTool.ResidualRevive; @@ -123,10 +137,10 @@ namespace Step.Database.Controllers public void DeleleTool(int toolId) { NcToolModel tool = FindTool(toolId); - DeleleTool(tool); + DeleteTool(tool); } - public void DeleleTool(NcToolModel tool) + public void DeleteTool(NcToolModel tool) { dbCtx.Tools.Remove(tool); @@ -162,14 +176,15 @@ namespace Step.Database.Controllers return dbShank; } - public void DeleleShank(int shankId) + public void DeleteShank(int shankId) { NcShankModel shank = FindShank(shankId); - DeleleShank(shank); + DeleteShank(shank); } - public void DeleleShank(NcShankModel shank) + public void DeleteShank(NcShankModel shank) { + dbCtx.Shanks.Attach(shank); dbCtx.Shanks.Remove(shank); dbCtx.SaveChanges(); @@ -185,12 +200,60 @@ namespace Step.Database.Controllers return dbPos; } - public void DeleleFamily(NcFamilyModel family) + public void DeleteFamily(NcFamilyModel family) { dbCtx.Families.Attach(family); dbCtx.Families.Remove(family); dbCtx.SaveChanges(); } + + public List GetMountedShanks(int magazineId) + { + return dbCtx + .Shanks + .Where(x => x.MagazineId == magazineId) + .Select(x => new DTONcShankModel() + { + Id = x.ShankId, + Balluf = x.Balluf, + MagazineId = x.MagazineId, + PositionId = x.PositionId, + MagazinePositionType = x.MagazinePositionType + }) + .ToList(); + } + + public List GetAvailableShanks() + { + return dbCtx + .Shanks + .Where(x => x.MagazineId == null) + .ToList(); + } + + public DTONcShankModel LoadShankInMagazine(byte magazineId, byte positionId, NcShankModel shank) + { + dbCtx.Shanks.Attach(shank); + + shank.MagazineId = magazineId; + shank.PositionId = positionId; + + dbCtx.SaveChanges(); + + return (DTONcShankModel)shank; + } + + public DTONcShankModel UnloadShankInMagazine(byte magazineId, byte positionId, NcShankModel shank) + { + dbCtx.Shanks.Attach(shank); + + shank.MagazineId = null; + shank.PositionId = null; + + dbCtx.SaveChanges(); + + return (DTONcShankModel)shank; + } } } \ No newline at end of file diff --git a/Step.Database/DatabaseContext.cs b/Step.Database/DatabaseContext.cs index 6bb9051c..3ee4b0e0 100644 --- a/Step.Database/DatabaseContext.cs +++ b/Step.Database/DatabaseContext.cs @@ -36,9 +36,21 @@ namespace Step.Database public DbSet MagazinePositions { get; set; } // Create migration string - public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME +";Uid="+ DATABASE_USER +";Pwd="+ DATABASE_PWD +";"; + public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME + ";Uid=" + DATABASE_USER + ";Pwd=" + DATABASE_PWD + ";"; + // public static string CONNECTION_STRING = "Server = " + ServerStartupConfig.DatabaseAddress + "; Database=" + DATABASE_NAME +";Uid="+ DATABASE_USER +";Pwd="+ DATABASE_PWD +";"; + //protected override void OnModelCreating(DbModelBuilder modelBuilder) + //{ + // modelBuilder.Entity() + // .HasOptional(e => e.Shank) + // .WithMany() + // .HasForeignKey(e => e.ShankId) + // .WillCascadeOnDelete(false); + + // base.OnModelCreating(modelBuilder); + //} + public DatabaseContext() : base(CONNECTION_STRING) { diff --git a/Step.Database/Migrations/201806281409567_InitMigration.resx b/Step.Database/Migrations/201806281409567_InitMigration.resx deleted file mode 100644 index 731640a3..00000000 --- a/Step.Database/Migrations/201806281409567_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/201806281409567_InitMigration.Designer.cs b/Step.Database/Migrations/201807021526505_InitMigration.Designer.cs similarity index 92% rename from Step.Database/Migrations/201806281409567_InitMigration.Designer.cs rename to Step.Database/Migrations/201807021526505_InitMigration.Designer.cs index 42a1fa03..fa496e39 100644 --- a/Step.Database/Migrations/201806281409567_InitMigration.Designer.cs +++ b/Step.Database/Migrations/201807021526505_InitMigration.Designer.cs @@ -13,7 +13,7 @@ namespace Step.Database.Migrations string IMigrationMetadata.Id { - get { return "201806281409567_InitMigration"; } + get { return "201807021526505_InitMigration"; } } string IMigrationMetadata.Source diff --git a/Step.Database/Migrations/201806281409567_InitMigration.cs b/Step.Database/Migrations/201807021526505_InitMigration.cs similarity index 97% rename from Step.Database/Migrations/201806281409567_InitMigration.cs rename to Step.Database/Migrations/201807021526505_InitMigration.cs index 411f6de6..a5f6eb33 100644 --- a/Step.Database/Migrations/201806281409567_InitMigration.cs +++ b/Step.Database/Migrations/201807021526505_InitMigration.cs @@ -168,7 +168,7 @@ namespace Step.Database.Migrations nc_offset_id = c.Int(nullable: false), lenght = c.Double(nullable: false), radius = c.Double(nullable: false), - wear_lenght = c.Double(nullable: false), + wear_length = c.Double(nullable: false), wear_radius = c.Double(nullable: false), }) .PrimaryKey(t => t.id); @@ -218,18 +218,18 @@ namespace Step.Database.Migrations { id = c.Int(nullable: false, identity: true), type = c.Byte(nullable: false), - offset_lenght = c.Short(nullable: false), + offset_length = c.Short(nullable: false), residual_life = c.Short(nullable: false), residual_revive = c.Short(nullable: false), family_id = c.Int(nullable: false), - shank_id = c.Int(nullable: false), + shank_id = c.Int(), offsetId1 = c.Int(nullable: false), offsetId2 = c.Int(nullable: false), offsetId3 = c.Int(nullable: false), }) .PrimaryKey(t => t.id) .ForeignKey("dbo.family", t => t.family_id, cascadeDelete: true) - .ForeignKey("dbo.shank", t => t.shank_id, cascadeDelete: true) + .ForeignKey("dbo.shank", t => t.shank_id) .Index(t => t.family_id) .Index(t => t.shank_id); diff --git a/Step.Database/Migrations/201807021526505_InitMigration.resx b/Step.Database/Migrations/201807021526505_InitMigration.resx new file mode 100644 index 00000000..f7ebedeb --- /dev/null +++ b/Step.Database/Migrations/201807021526505_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 2245ba11..d447b496 100644 --- a/Step.Database/Step.Database.csproj +++ b/Step.Database/Step.Database.csproj @@ -78,9 +78,9 @@ - - - 201806281409567_InitMigration.cs + + + 201807021526505_InitMigration.cs @@ -116,8 +116,8 @@ - - 201806281409567_InitMigration.cs + + 201807021526505_InitMigration.cs diff --git a/Step.Model/DTOModels/ToolModels/DTONcMountedTool.cs b/Step.Model/DTOModels/ToolModels/DTONcMountedTool.cs new file mode 100644 index 00000000..56aad371 --- /dev/null +++ b/Step.Model/DTOModels/ToolModels/DTONcMountedTool.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Step.Model.DTOModels.ToolModels +{ + public class DTONcMountedShank + { + public byte PositionId; + public byte MagazineId; + public int ShankId; + } +} diff --git a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs index 50b3251a..6f224e94 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs @@ -18,11 +18,13 @@ namespace Step.Model.DTOModels.ToolModels [Required] public byte MagazinePositionType { get; set; } + [Range(1, byte.MaxValue)] public byte? MagazineId { get; set; } + [Range(1, byte.MaxValue)] public byte? PositionId { get; set; } - public static explicit operator DTONcShankModel(NcShankModel obj) + public static explicit operator DTONcShankModel(NcShankModel obj) { return new DTONcShankModel() { diff --git a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs index 994d4381..f8bab197 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs @@ -11,7 +11,7 @@ namespace Step.Model.DTOModels.ToolModels public byte Type { get; set; } [Required] - public short OffsetLenght { get; set; } + public short OffsetLength { get; set; } [Required] public short ResidualLife { get; set; } @@ -36,11 +36,10 @@ namespace Step.Model.DTOModels.ToolModels { return new DTONcToolModel() { - Id = obj.ToolId, FamilyId = obj.FamilyId, - ShankId = obj.ShankId, + ShankId = obj.ShankId.Value, Type = obj.Type, - OffsetLenght = obj.OffsetLenght, + OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive }; @@ -50,11 +49,10 @@ namespace Step.Model.DTOModels.ToolModels { return new NcToolModel() { - ToolId = obj.Id, FamilyId = obj.FamilyId, ShankId = obj.ShankId, Type = obj.Type, - OffsetLenght = obj.OffsetLenght, + OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive }; diff --git a/Step.Model/DatabaseModels/NcOffsetModel.cs b/Step.Model/DatabaseModels/NcOffsetModel.cs index c23dec4c..a88c8b2d 100644 --- a/Step.Model/DatabaseModels/NcOffsetModel.cs +++ b/Step.Model/DatabaseModels/NcOffsetModel.cs @@ -19,8 +19,8 @@ namespace Step.Model.DatabaseModels [Column("radius")] public double Radius { get; set; } - [Column("wear_lenght")] - public double WearLenght { get; set; } + [Column("wear_length")] + public double WearLength { get; set; } [Column("wear_radius")] public double WearRadius { get; set; } diff --git a/Step.Model/DatabaseModels/NcShankModel.cs b/Step.Model/DatabaseModels/NcShankModel.cs index 50acef53..cd783a8e 100644 --- a/Step.Model/DatabaseModels/NcShankModel.cs +++ b/Step.Model/DatabaseModels/NcShankModel.cs @@ -1,4 +1,5 @@ -using System.ComponentModel.DataAnnotations; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace Step.Model.DatabaseModels @@ -23,5 +24,7 @@ namespace Step.Model.DatabaseModels public byte? PositionId { get; set; } public NcMagazinePositionModel MagazinePosition { get; set; } + + public List Tools { get; set; } } } \ No newline at end of file diff --git a/Step.Model/DatabaseModels/NcToolModel.cs b/Step.Model/DatabaseModels/NcToolModel.cs index 48b1bbeb..01eff80c 100644 --- a/Step.Model/DatabaseModels/NcToolModel.cs +++ b/Step.Model/DatabaseModels/NcToolModel.cs @@ -13,8 +13,8 @@ namespace Step.Model.DatabaseModels [Column("type")] public byte Type { get; set; } - [Column("offset_lenght")] - public short OffsetLenght { get; set; } + [Column("offset_length")] + public short OffsetLength { get; set; } [Column("residual_life")] public short ResidualLife { get; set; } @@ -28,8 +28,10 @@ namespace Step.Model.DatabaseModels public int FamilyId { get; set; } [Column("shank_id")] + [DatabaseGenerated(DatabaseGeneratedOption.None)] + [ForeignKey("Shank")] - public int ShankId { get; set; } + public int? ShankId { get; set; } [Column("offsetId1")] public int OffsetId1 { get; set; } diff --git a/Step.Model/Step.Model.csproj b/Step.Model/Step.Model.csproj index bd74f8cb..7dac540f 100644 --- a/Step.Model/Step.Model.csproj +++ b/Step.Model/Step.Model.csproj @@ -113,6 +113,7 @@ + diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index 76825361..935bc4b0 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -1116,7 +1116,7 @@ namespace Step.NC { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - toolsManager.DeleleTool(tool); + toolsManager.DeleteTool(tool); } } @@ -1124,7 +1124,7 @@ namespace Step.NC { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - toolsManager.DeleleShank(shank); + toolsManager.DeleteShank(shank); } } @@ -1132,9 +1132,26 @@ namespace Step.NC { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - toolsManager.DeleleFamily(family); + toolsManager.DeleteFamily(family); } } + + public DTONcShankModel LoadToolInMagazine(byte magazineId, byte positionId, NcShankModel shank) + { + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + return toolsManager.LoadShankInMagazine(magazineId, positionId, shank); + } + } + + public DTONcShankModel UnloadToolInMagazine(byte magazineId, byte positionId, NcShankModel shank) + { + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + return toolsManager.UnloadShankInMagazine(magazineId, positionId, shank); + } + } + #endregion Osai/Fanuc Tools #endregion Write data diff --git a/Step/Controllers/WebApi/NcToolManagerController.cs b/Step/Controllers/WebApi/NcToolManagerController.cs index 862b91da..972e9191 100644 --- a/Step/Controllers/WebApi/NcToolManagerController.cs +++ b/Step/Controllers/WebApi/NcToolManagerController.cs @@ -30,6 +30,17 @@ namespace Step.Controllers.WebApi if (!ModelState.IsValid) return BadRequest(ModelState); + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + NcFamilyModel fam = toolsManager.FindFamily(dtoTool.FamilyId); + if (fam == null) + return BadRequest("error_incorrect_parameters"); + + NcShankModel shank = toolsManager.FindShank(dtoTool.ShankId); + if (shank == null) + return BadRequest("error_incorrect_parameters"); + } + using (NcHandler ncHandler = new NcHandler()) { ncHandler.Connect(); @@ -239,12 +250,12 @@ namespace Step.Controllers.WebApi } } - [Route("magazine/{magazineId:int}/position/{positionId:int}"), HttpGet] - public IHttpActionResult GetMagazinesPositions(byte magazineId, byte positionId) + [Route("magazine/{magazineId:int}/positions"), HttpGet] + public IHttpActionResult GetMagazinesPositions(byte magazineId) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - NcMagazinePositionModel magazine = toolsManager.GetPosition(magazineId, positionId); + List magazine = toolsManager.GetMagazinePositions(magazineId); return Ok(magazine); } @@ -258,7 +269,8 @@ namespace Step.Controllers.WebApi using (NcToolManagerController toolsManager = new NcToolManagerController()) { - NcMagazinePositionModel pos = toolsManager.GetPosition(magazineId, positionId); + // Check if magazine&position exists + NcMagazinePositionModel pos = toolsManager.GetMagazinePosition(magazineId, positionId); if (pos == null) return NotFound(); @@ -272,5 +284,79 @@ namespace Step.Controllers.WebApi #endregion Magazine positions + [Route("magazine/{magazineId:int}/mounted_tools"), HttpGet] + public IHttpActionResult GetMagazineTools(byte magazineId) + { + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + // Check if magazine exists + List pos = toolsManager.GetMagazinePositions(magazineId); + if (pos.Count <= 0) + return NotFound(); + + List mountedShank = toolsManager.GetMountedShanks(magazineId); + + return Ok(mountedShank); + } + } + + [Route("magazine/available_tools"), HttpGet] + public IHttpActionResult GetAvailableTools() + { + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + List shanks = toolsManager.GetAvailableShanks(); + + return Ok(shanks); + } + } + + [Route("magazine/{magazineId:int}/load/position/{positionId:int}"), HttpPut] + public IHttpActionResult LoadToolInToMagazine(byte magazineId, byte positionId, [FromBody][Required] DTOUpdateMagazineModel shankId) + { + if (!ModelState.IsValid) + return BadRequest(ModelState); + if (shankId.ToolId == 0) + return BadRequest("error_incorrect_parameters"); + + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + NcShankModel shank = toolsManager.FindShank(shankId.ToolId); + if (shank == null) + return BadRequest("error_incorrect_parameters"); + + using (NcHandler ncHandler = new NcHandler()) + { + ncHandler.Connect(); + DTONcShankModel responseShank = ncHandler.LoadToolInMagazine(magazineId, positionId, shank); + + return Ok(responseShank); + } + } + } + + [Route("magazine/{magazineId:int}/unload/position/{positionId:int}"), HttpPut] + public IHttpActionResult UnloadToolInToMagazine(byte magazineId, byte positionId, [FromBody][Required] DTOUpdateMagazineModel shankId) + { + if (!ModelState.IsValid) + return BadRequest(ModelState); + if (shankId.ToolId == 0) + return BadRequest("error_incorrect_parameters"); + + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + NcShankModel shank = toolsManager.FindShank(shankId.ToolId); + if (shank == null) + return BadRequest("error_incorrect_parameters"); + + using (NcHandler ncHandler = new NcHandler()) + { + ncHandler.Connect(); + DTONcShankModel responseShank = ncHandler.UnloadToolInMagazine(magazineId, positionId, shank); + + return Ok(responseShank); + } + } + } } } \ No newline at end of file