Files
cms_thermo_active/Step/Controllers/WebApi/NcToolManagerController.cs
T
2018-06-28 17:20:47 +02:00

276 lines
8.6 KiB
C#

using Step.Database.Controllers;
using Step.Model.DatabaseModels;
using Step.Model.DTOModels.ToolModels;
using Step.NC;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Web.Http;
namespace Step.Controllers.WebApi
{
[RoutePrefix("api/tool_manager/nc")]
public class NcToolManagerApiController : ApiController
{
#region Tools
[Route("tools"), HttpGet]
public IHttpActionResult GetNcToolTable()
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
List<NcToolModel> tools = toolsManager.GetTools();
return Ok(tools);
}
}
[Route("tool"), HttpPost]
public IHttpActionResult AddTool([FromBody][Required]DTONcToolModel dtoTool)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
NcToolModel newTool = ncHandler.AddTool(dtoTool);
return Ok(newTool);
}
}
[Route("tool/{toolId:int}"), HttpPut]
public IHttpActionResult PutTool(int toolId, [FromBody][Required]DTONcToolModel dtoTool)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcToolModel tool = toolsManager.FindTool(toolId);
if (tool == null)
return NotFound();
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
NcToolModel newTool = ncHandler.UpdateTool(tool, dtoTool);
return Ok(newTool);
}
}
}
[Route("tool/{toolId:int}"), HttpDelete]
public IHttpActionResult DeleteTool(int toolId)
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcToolModel tool = toolsManager.FindTool(toolId);
if (tool == null)
return NotFound();
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
ncHandler.DeleteNcTool(tool);
return Ok();
}
}
}
#endregion Tools
#region Shanks
[Route("shanks"), HttpGet]
public IHttpActionResult GetShanks()
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
List<NcShankModel> shanks = toolsManager.GetShanks();
return Ok(shanks);
}
}
[Route("shank"), HttpPost]
public IHttpActionResult AddShank([FromBody][Required] DTONcShankModel dtoShank)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
NcShankModel shank = ncHandler.AddShank(dtoShank);
return Ok(shank);
}
}
[Route("shank/{shankId:int}"), HttpPut]
public IHttpActionResult PutShank(int shankId, [FromBody][Required]DTONcShankModel dtoShank)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcShankModel shank = toolsManager.FindShank(shankId);
if (shank == null)
return NotFound();
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
shank = ncHandler.UpdateShank(shank, dtoShank);
return Ok(shank);
}
}
}
[Route("shank/{shankId:int}"), HttpDelete]
public IHttpActionResult DeleteShank(int shankId)
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcShankModel shank = toolsManager.FindShank(shankId);
if (shank == null)
return NotFound();
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
ncHandler.DeleteNcShank(shank);
return Ok();
}
}
}
#endregion Shanks
#region Families
[Route("family"), HttpPost]
public IHttpActionResult AddFamily([FromBody][Required]DTONcFamilyModel dtoFamily)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
NcFamilyModel newFamily = ncHandler.AddFamily(dtoFamily);
return Ok(newFamily);
}
}
[Route("families"), HttpGet]
public IHttpActionResult GetFamilies()
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
List<NcFamilyModel> families = toolsManager.GetFamilies();
return Ok(families);
}
}
[Route("family/{famlyId:int}"), HttpPut]
public IHttpActionResult PutFamily(int familyId, [FromBody][Required]DTONcToolModel dtoTool)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcToolModel tool = toolsManager.FindTool(familyId);
if (tool == null)
return NotFound();
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
NcToolModel newTool = ncHandler.UpdateTool(tool, dtoTool);
return Ok(newTool);
}
}
}
[Route("family/{familyId:int}"), HttpDelete]
public IHttpActionResult DeleteFamily(int familyId)
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcFamilyModel family = toolsManager.FindFamily(familyId);
if (family == null)
return NotFound();
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
ncHandler.DeleteNcFamily(family);
return Ok();
}
}
}
#endregion Families
#region Magazine positions
[Route("magazines_positions"), HttpGet]
public IHttpActionResult GetMagazinesPositions()
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
List<NcMagazinePositionModel> magazines = toolsManager.GetPositions();
return Ok(magazines);
}
}
[Route("magazine/{magazineId:int}/position/{positionId:int}"), HttpGet]
public IHttpActionResult GetMagazinesPositions(byte magazineId, byte positionId)
{
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcMagazinePositionModel magazine = toolsManager.GetPosition(magazineId, positionId);
return Ok(magazine);
}
}
[Route("magazine/{magazineId}/position/{positionId}"), HttpPut]
public IHttpActionResult PutMagazinePosition([Required]byte magazineId, [Required]byte positionId, [FromBody]DTONcMagazinesPositionsModel dtoPos)
{
if (!ModelState.IsValid)
return BadRequest(ModelState);
using (NcToolManagerController toolsManager = new NcToolManagerController())
{
NcMagazinePositionModel pos = toolsManager.GetPosition(magazineId, positionId);
if (pos == null)
return NotFound();
using (NcHandler ncHandler = new NcHandler())
{
pos = ncHandler.UpdateMagazinePosition(pos, dtoPos);
return Ok(pos);
}
}
}
#endregion Magazine positions
}
}