public IHttpActionResult PostInvoiceWorkflowStage(InvoiceWorkflowStage workflowStage) { if (workflowStage == null) { return(BadRequest("workflow stage cannot be found in the request body.")); } try { var allStages = invoiceWorkflowService.GetWorkflowStages().OrderByDescending(lv => lv.StageId).ToList(); int lastStage = 1; if (workflowStage.StageOrderNumber > 1) { lastStage = workflowStage.StageOrderNumber; var topStages = allStages.Where(s => s.StageOrderNumber >= workflowStage.StageOrderNumber); foreach (var topStage in topStages) { var stage = invoiceWorkflowService.GetWorkflowStageByStageOrderNumber(topStage.StageOrderNumber); stage.StageOrderNumber = stage.StageOrderNumber + 1; invoiceWorkflowService.UpdateWorkflowStage(stage); } } else { if (allStages.Any()) { lastStage = allStages.FirstOrDefault().StageOrderNumber + 1; } } workflowStage.CreatedDate = DateTime.Now; workflowStage.ReferenceNumberRequired = true; workflowStage.TrackingEntity = "1"; workflowStage.TrackingOwner = "1"; workflowStage.StageOrderNumber = lastStage; invoiceWorkflowService.CreateWorkflowStage(workflowStage); allStages = invoiceWorkflowService.GetWorkflowStages().OrderByDescending(lv => lv.StageOrderNumber).ToList(); var partialView = Helpers.RenderPartial("~/Views/Shared/Partial/Workflow/InvoiceWorkflowStages.cshtml", allStages); return(Ok(partialView)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult PutInvoiceWorkflowStage(InvoiceWorkflowStage workflowStage) { if (workflowStage == null) { return(BadRequest("workflow stage connot be found in the request body")); } try { var currentStage = invoiceWorkflowService.GetWorkflowStage(workflowStage.StageId); currentStage.StageName = workflowStage.StageName; currentStage.RoleId = workflowStage.RoleId; invoiceWorkflowService.UpdateWorkflowStage(currentStage); var allStages = invoiceWorkflowService.GetWorkflowStages().OrderByDescending(lv => lv.StageOrderNumber).ToList(); var partialView = Helpers.RenderPartial("~/Views/Shared/Partial/Workflow/InvoiceWorkflowStages.cshtml", allStages); return(Ok(partialView)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public void UpdateWorkflowStage(InvoiceWorkflowStage stage) { var original = workflowStagesRepository.GetById(s => s.StageId == stage.StageId); workflowStagesRepository.Update(original, stage.AutoMapObject <InvoiceWorkflowStage, DB.InvoiceWorkflowStage>()); }
public InvoiceWorkflowStage CreateWorkflowStage(InvoiceWorkflowStage stage) { var workflowStage = workflowStagesRepository.Insert(stage.AutoMapObject <InvoiceWorkflowStage, DB.InvoiceWorkflowStage>()); return(workflowStage.AutoMapObject <DB.InvoiceWorkflowStage, InvoiceWorkflowStage>()); }