525 lines
19 KiB
C#
525 lines
19 KiB
C#
using CMS_CORE_Library.Models;
|
|
using Step.Model.DatabaseModels;
|
|
using Step.Model.DTOModels.ToolModels;
|
|
using Step.NC;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.DataAnnotations;
|
|
using System.Linq;
|
|
using System.Web.Http;
|
|
|
|
namespace Step.Controllers.WebApi
|
|
{
|
|
[RoutePrefix("api/tool_manager")]
|
|
public class SiemensToolManagerController : ApiController
|
|
{
|
|
[Route("tools"), HttpGet]
|
|
public IHttpActionResult GetToolTable()
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.GetToolTableData(out List<SiemensToolModel> tools);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(tools);
|
|
}
|
|
}
|
|
|
|
[Route("siemens/tool"), HttpPost]
|
|
public IHttpActionResult AddTool([FromBody][Required]DTOSiemensToolModel tool)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
// Convert from DTOModel to library model
|
|
SiemensToolModel siemensModel = (SiemensToolModel)tool; ;
|
|
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.AddTool(ref siemensModel);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(siemensModel);
|
|
}
|
|
}
|
|
|
|
[Route("siemens/tool/{id}"), HttpPut]
|
|
public IHttpActionResult UpdateTool(int id, [FromBody][Required]DTOSiemensToolModel tool)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
// Convert from DTOModel to library model
|
|
SiemensToolModel siemensModel = (SiemensToolModel)tool;
|
|
siemensModel.Id = id;
|
|
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.UpdateTool(ref siemensModel);
|
|
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(siemensModel);
|
|
}
|
|
}
|
|
|
|
[Route("tool/{id:int}"), HttpDelete]
|
|
public IHttpActionResult DeleteTool(int id)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
// Call delete library function
|
|
CmsError libraryError = ncAdapter.DeleteTool(id);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("families"), HttpGet]
|
|
public IHttpActionResult GetFamilies()
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.GetFamiliesData(out List<FamilyModel> families);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(families);
|
|
}
|
|
}
|
|
|
|
[Route("family"), HttpPost]
|
|
public IHttpActionResult AddFamily([FromBody] DTOFamilyModel family)
|
|
{
|
|
if (String.IsNullOrEmpty(family.Name))
|
|
return BadRequest();
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.AddFamily(family.Name, out FamilyModel newFamily);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(newFamily);
|
|
}
|
|
}
|
|
|
|
[Route("family/{oldName}"), HttpPut]
|
|
public IHttpActionResult PutFamily(string oldName, [FromBody]DTOFamilyModel family)
|
|
{
|
|
if (string.IsNullOrEmpty(family.Name))
|
|
return BadRequest();
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
CmsError libraryError = ncAdapter.UpdateFamilyName(oldName, family.Name);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(family);
|
|
}
|
|
}
|
|
|
|
[Route("family/{name}"), HttpDelete]
|
|
public IHttpActionResult DeleteFamily(string name)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
// Call delete library function
|
|
CmsError libraryError = ncAdapter.DeleteFamily(name);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("magazines_positions"), HttpGet]
|
|
public IHttpActionResult GetMagazinesPositions()
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.GetMagazinesPositionsData(out List<PositionModel> magazines);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(magazines);
|
|
}
|
|
}
|
|
|
|
[Route("magazine/{magazineId:int}/positions"), HttpGet]
|
|
public IHttpActionResult GetMagazinePositions(int magazineId)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.GetMagazinesPositionsData(out List<PositionModel> magazines);
|
|
// Filter by magazine id
|
|
magazines = magazines.Where(x => x.MagazineId == magazineId).ToList();
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(magazines);
|
|
}
|
|
}
|
|
|
|
[Route("magazine/{magazineId}/position/{positionId}"), HttpPut]
|
|
public IHttpActionResult PutMagazinePosition([Required]int magazineId, [Required]int positionId, [FromBody]DTOMagazinesPositionsModel magazinesPos)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
// Create Library model
|
|
PositionModel pos = new PositionModel()
|
|
{
|
|
PositionId = positionId,
|
|
MagazineId = magazineId,
|
|
Disabled = magazinesPos.Disabled
|
|
};
|
|
// Update
|
|
CmsError libraryError = ncAdapter.UpdateMagazinePosition(pos);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("shanks"), HttpGet]
|
|
public IHttpActionResult GetShanks()
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.GetShanksData(out List<ShankModel> shanks);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(shanks);
|
|
}
|
|
}
|
|
|
|
[Route("shank"), HttpPost]
|
|
public IHttpActionResult AddShank([FromBody][Required] DTOShankModel dtoShank)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ShankModel shank = (ShankModel)dtoShank;
|
|
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.AddShank(ref shank);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(shank);
|
|
}
|
|
}
|
|
|
|
[Route("shank/{shankId:int}"), HttpPut]
|
|
public IHttpActionResult UpdateShank(int shankId, [FromBody][Required] DTOShankModel dtoShank)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ShankModel shank = (ShankModel)dtoShank;
|
|
shank.Id = shankId;
|
|
|
|
ncAdapter.Connect();
|
|
CmsError libraryError = ncAdapter.UpdateShank(ref shank);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(shank);
|
|
}
|
|
}
|
|
|
|
[Route("shank/{id:int}"), HttpDelete]
|
|
public IHttpActionResult DeleteShank(int id)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
// Call delete library function
|
|
CmsError libraryError = ncAdapter.DeleteShank(id);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("tool/{toolId:int}/edge"), HttpPost]
|
|
public IHttpActionResult AddEdge(int toolId, [FromBody][Required]DTOEdgeModel dtoEdge)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter siemensHandler = new SiemensToolTableAdapter())
|
|
{
|
|
siemensHandler.Connect();
|
|
|
|
EdgeModel edge = (EdgeModel)dtoEdge;
|
|
|
|
// Call library add methods
|
|
CmsError libraryError = siemensHandler.AddEdge(toolId, ref edge);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(edge);
|
|
}
|
|
}
|
|
|
|
[Route("tool/{toolId:int}/edge/{edgeId:int}"), HttpPut]
|
|
public IHttpActionResult UpdateEdge(int toolId, int edgeId, [FromBody][Required]DTOEdgeModel dtoEdge)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
EdgeModel edge = (EdgeModel)dtoEdge;
|
|
edge.Id = edgeId;
|
|
|
|
// Call library add methods
|
|
CmsError libraryError = ncAdapter.UpdateEdge(toolId, ref edge);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(edge);
|
|
}
|
|
}
|
|
|
|
[Route("tool/{toolId:int}/edge/{edgeId:int}"), HttpDelete]
|
|
public IHttpActionResult DeleteEdge(int toolId, int edgeId)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
// Call delete library function
|
|
CmsError libraryError = ncAdapter.DeleteEdge(toolId, edgeId);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("magazine/{magazineId:int}/mounted_tools"), HttpGet]
|
|
public IHttpActionResult GetMagazineTools(int magazineId)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
// Call delete library function
|
|
CmsError libraryError = ncAdapter.GetMagazinePositionsAndTools(magazineId, out List<MountedToolModel> magazinePos);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(magazinePos);
|
|
}
|
|
}
|
|
|
|
[Route("magazine/available_tools"), HttpGet]
|
|
public IHttpActionResult GetAvailableTools()
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
// Call delete library function
|
|
CmsError libraryError = ncAdapter.GetNotInMagazinesTools(out List<ShankModel> multiTools, out List<SiemensToolModel> tools);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(new
|
|
{
|
|
MultiTools = multiTools,
|
|
Tools = tools
|
|
});
|
|
}
|
|
}
|
|
|
|
[Route("magazine/{magazineId:int}/load/position/{positionId:int}"), HttpPut]
|
|
public IHttpActionResult LoadToolInToMagazine(int magazineId, int positionId, [FromBody][Required] DTOSiemensUpdateMagazineModel toolId)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
if (toolId.ToolId == 0)
|
|
return BadRequest("error_incorrect_parameters");
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
NewToolInMagazineModel libraryMag = new NewToolInMagazineModel { PositionId = positionId, ToolId = toolId.ToolId };
|
|
// Call delete library function
|
|
CmsError libraryError = ncAdapter.LoadToolInMagazine(magazineId, libraryMag, out MountedToolModel mounted);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(mounted);
|
|
}
|
|
}
|
|
|
|
[Route("magazine/{magazineId:int}/unload/position/{positionId:int}"), HttpPut]
|
|
public IHttpActionResult UnloadToolFromMagazine(int magazineId, int positionId)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
// Call delete library function
|
|
CmsError libraryError = ncAdapter.UnloadToolInMagazine(magazineId, positionId);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok(new
|
|
{
|
|
magazineId,
|
|
positionId,
|
|
toolId = 0
|
|
});
|
|
}
|
|
}
|
|
|
|
[Route("shank/{shankId:int}/load/{positionId:int}/tool/{toolId:int}"), HttpPut]
|
|
public IHttpActionResult LoadToolIntoShank(int shankId, int positionId, int toolId)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
CmsError libraryError = ncAdapter.LoadTooolIntoShank(shankId, positionId, toolId);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("shank/{shankId:int}/unload/{positionId:int}"), HttpPut]
|
|
public IHttpActionResult UnloadToolFromShank(int shankId, int positionId)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return BadRequest(ModelState);
|
|
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
CmsError libraryError = ncAdapter.UnloadTooolFromShank(shankId, positionId);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("magazine/{magazineId:int}/position/{positionId:int}/load/balluf"), HttpPut]
|
|
public IHttpActionResult BallufLoad(ushort magazineId, ushort positionId)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
CmsError libraryError = ncAdapter.TDILoad(magazineId, positionId);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("magazine/{magazineId:int}/position/{positionId:int}/unload/{toolId:int}/balluf"), HttpPut]
|
|
public IHttpActionResult BallufUnload(ushort magazineId, ushort positionId, ushort toolId)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
CmsError libraryError = ncAdapter.TDIUnload(magazineId, positionId, toolId);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
|
|
[Route("balluf"), HttpPost]
|
|
public IHttpActionResult WriteEmptyBalluf([FromBody]DTOTDISiemensToolModel tool)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
CmsError libraryError = ncAdapter.WriteEmptyBalluf((SiemensToolModel)tool);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("abort_balluf"), HttpPost]
|
|
public IHttpActionResult AbortEmptyBalluf()
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
CmsError libraryError = ncAdapter.AbortEmptyBalluf();
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
|
|
[Route("delete_balluf/magazine/{magazineId:int}/position/{positionId:int}/unload/{toolId:int}/balluf"), HttpPut]
|
|
public IHttpActionResult DeleteBalluf(ushort magazineId, ushort positionId, ushort toolId)
|
|
{
|
|
using (SiemensToolTableAdapter ncAdapter = new SiemensToolTableAdapter())
|
|
{
|
|
ncAdapter.Connect();
|
|
|
|
CmsError libraryError = ncAdapter.ClearBallufTablet(magazineId, positionId, toolId);
|
|
if (libraryError.IsError())
|
|
return BadRequest(libraryError.localizationKey);
|
|
|
|
return Ok();
|
|
}
|
|
}
|
|
}
|
|
} |