public IHttpActionResult PostWorkflowStage(WorkflowStage workflowStage) { if (workflowStage == null) { return(BadRequest("workflow stage connot be found in the request body")); } try { var allStages = workflowService.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 = workflowService.GetWorkflowStageByStageOrderNumber(topStage.StageOrderNumber); stage.StageOrderNumber = stage.StageOrderNumber + 1; workflowService.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; workflowService.CreateWorkflowStage(workflowStage); allStages = workflowService.GetWorkflowStages().OrderByDescending(lv => lv.StageOrderNumber).ToList(); var partialView = Helpers.RenderPartial("~/Views/Shared/Partial/Workflow/WorkflowStages.cshtml", allStages); return(Ok(partialView)); } catch (Exception ex) { return(InternalServerError(ex)); } }