Queue Manager

This commit is contained in:
Lucio Maranta
2018-09-10 17:19:22 +02:00
parent 86ac91fb38
commit b46d043a85
13 changed files with 436 additions and 32 deletions
@@ -116,6 +116,7 @@ namespace Step.Controllers.WebApi
return Ok();
}
[Route("shared_files"), HttpGet]
public IHttpActionResult GetSharedFolderFileList(string sharedPath)
@@ -156,5 +157,103 @@ namespace Step.Controllers.WebApi
return Ok(filelist);
}
#region Queue Manager
[Route("queue/add"), HttpPost]
public async Task<IHttpActionResult> UploadToQueue()
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
List<FormItem> formItems = await MultipartHandler.ManageMultiPartFileAsync(Request);
foreach (FormItem item in formItems)
{
if (item.IsAFile)
{
if (item.ParameterName == "file")
{
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
File.WriteAllBytes(TEMP_FILE + item.FileName, item.Data);
// Get reps
var repsParam = formItems.Where(x => x.ParameterName == "reps").FirstOrDefault();
// Check if reps parameter is null or isn't a valid int
if (repsParam == null || !Int32.TryParse(repsParam.Value, out int reps))
return BadRequest();
CmsError cmsError = ncHandler.UploadPartProgramAddToQueue(TEMP_FILE, item.FileName, reps, out ActiveProgramDataModel programData);
if (cmsError.IsError())
return BadRequest(cmsError.localizationKey);
}
}
else if (item.ParameterName == "image")
{
File.WriteAllBytes(PART_PRG_IMAGES + item.FileName, item.Data);
}
}
}
return Ok();
}
[Route("queue/{processId:int}/remove/{itemId:int}"), HttpDelete]
public IHttpActionResult RemoveFromQueue(int processId, int itemId)
{
using (NcHandler ncHandler = new NcHandler())
{
ncHandler.Connect();
CmsError cmsError = ncHandler.RemoveFromQueue(processId, itemId);
if (cmsError.IsError())
return BadRequest(cmsError.localizationKey);
}
return Ok();
}
[Route("queue/{processId:int}/swap"), HttpPut]
public IHttpActionResult SwapQueueItems(int processId, SwapItems itemsPositions)
{
using (NcHandler ncHandler = new NcHandler())
{
CmsError cmsError = ncHandler.SwapQueueItems(processId, itemsPositions.Item1Position, itemsPositions.Item2Position);
if (cmsError.IsError())
return BadRequest(cmsError.localizationKey);
}
return Ok();
}
[Route("queue/{processId:int}/edit/{positionId:int}"), HttpPut]
public IHttpActionResult EditQueueItem(int processId, int positionId, SwapItems reps)
{
using (NcHandler ncHandler = new NcHandler())
{
CmsError cmsError = ncHandler.EditQueueItemReps(processId, positionId, reps.Reps );
if (cmsError.IsError())
return BadRequest(cmsError.localizationKey);
}
return Ok();
}
public class SwapItems
{
public int Item1Position;
public int Item2Position;
public int Reps;
}
#endregion
}
}