Added load/unload into shank

Fixed magazine position returned data
WIP loading/unloading rules
This commit is contained in:
Lucio Maranta
2018-07-09 13:02:16 +02:00
parent 28e65cbdda
commit 243fbb37b6
16 changed files with 350 additions and 209 deletions
@@ -4,6 +4,7 @@ using Step.Model.DTOModels.ToolModels;
using Step.NC;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web.Http;
using static CMS_CORE_Library.DataStructures;
using static Step.Config.ServerConfig;
@@ -307,14 +308,14 @@ namespace Step.Controllers.WebApi
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
List<NcMagazinePositionModel> magazine = toolsManager.FindMagazinePositions(magazineId);
List<DTONcMagazinePositionModel> magazine = toolsManager.GetMagazinePositions(magazineId);
return Ok(magazine);
}
}
[Route("magazine/{magazineId}/position/{positionId}"), HttpPut]
public IHttpActionResult PutMagazinePosition([Required]byte magazineId, [Required]byte positionId, [FromBody]DTONcMagazinesPositionsModel dtoPos)
public IHttpActionResult PutMagazinePosition([Required]byte magazineId, [Required]byte positionId, [FromBody]DTONcMagazinePositionModel dtoPos)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
@@ -328,8 +329,8 @@ namespace Step.Controllers.WebApi
using (NcHandler ncHandler = new NcHandler())
{
pos = ncHandler.UpdateMagazinePosition(pos, dtoPos);
return Ok(pos);
DTONcMagazinePositionModel newPos = ncHandler.UpdateMagazinePosition(pos, dtoPos);
return Ok(newPos);
}
}
}
@@ -371,20 +372,35 @@ namespace Step.Controllers.WebApi
if (shankId.ToolId == 0)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
// Check data
NcShankModel shank;
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcShankModel shank = toolsManager.FindShank(shankId.ToolId);
// Check if shank exists
shank = toolsManager.FindShank(shankId.ToolId);
if (shank == null)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
// Check if shank is already loaded somewhere
if (shank.MagazineId != null)
return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED);
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
DTONcMagazinesPositionsModel magPos = ncHandler.LoadToolInMagazine(magazineId, positionId, shank);
return Ok(magPos);
}
// Check if magazine position exists
NcMagazinePositionModel magPos = toolsManager.FindMagazinePosition(magazineId, positionId);
if(magPos == null)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
// Check if the mag pos is disabled
if(magPos.Disabled == true)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
}
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
DTONcMagazinePositionModel magazinePos = ncHandler.LoadToolInMagazine(magazineId, positionId, shank);
return Ok(magazinePos);
}
}
[Route("magazine/{magazineId:int}/unload/position/{positionId:int}"), HttpPut]
@@ -395,19 +411,63 @@ namespace Step.Controllers.WebApi
if (shankId.ToolId == 0)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
// Check data
NcShankModel shank;
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcShankModel shank = toolsManager.FindShank(shankId.ToolId);
// Check if shank exists
shank = toolsManager.FindShank(shankId.ToolId);
if (shank == null)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
DTONcShankModel responseShank = ncHandler.UnloadToolInMagazine(magazineId, positionId, shank);
// Check if magazine position exists
NcMagazinePositionModel magPos = toolsManager.FindMagazinePosition(magazineId, positionId);
if (magPos == null)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
// Check if the mag pos is disabled
if (magPos.Disabled == true)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
// Check if magazine position is occupied
NcShankModel shankMounted = toolsManager.FindShanks().Where(x => x.MagazineId == magazineId && x.PositionId == positionId).FirstOrDefault();
if (shankMounted != null)
return BadRequest(API_ERROR_KEYS.MAGAZINE_POSITION_OCCUPIED);
}
return Ok(responseShank);
}
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
DTONcShankModel responseShank = ncHandler.UnloadToolInMagazine(magazineId, positionId, shank);
return Ok(responseShank);
}
}
[Route("shank/{shankId:int}/load/tool/{toolId:int}"), HttpPut]
public IHttpActionResult LoadToolIntoShank(int shankId, int toolId)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
NcToolModel tool;
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
// Check if shank exists
NcShankModel shank = toolsManager.FindShank(shankId);
if (shank == null)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
tool = toolsManager.FindTool(toolId);
if(tool== null)
return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);
}
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
DTONcShankModel shank = ncHandler.LoadIntoShank(tool, shankId);
return Ok(shank);
}
}
}