public IHttpActionResult PostChangeWorkflowStage(ChangeWorkflowStage workflowStage)
        {
            if (workflowStage == null)
            {
                return(BadRequest("workflow stage cannot be found in the request body."));
            }

            try
            {
                var allStages = changeWorkflowService.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 = changeWorkflowService.GetWorkflowStageByStageOrderNumber(topStage.StageOrderNumber);
                        stage.StageOrderNumber = stage.StageOrderNumber + 1;
                        changeWorkflowService.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;
                changeWorkflowService.CreateWorkflowStage(workflowStage);

                allStages = changeWorkflowService.GetWorkflowStages().OrderByDescending(lv => lv.StageOrderNumber).ToList();
                var partialView = Helpers.RenderPartial("~/Views/Shared/Partial/Workflow/ChangeWorkflowStages.cshtml", allStages);
                return(Ok(partialView));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
        public IHttpActionResult PutChangeWorkflowStage(ChangeWorkflowStage workflowStage)
        {
            if (workflowStage == null)
            {
                return(BadRequest("workflow stage connot be found in the request body"));
            }

            try
            {
                var currentStage = changeWorkflowService.GetWorkflowStage(workflowStage.StageId);
                currentStage.StageName = workflowStage.StageName;
                currentStage.RoleId    = workflowStage.RoleId;

                changeWorkflowService.UpdateWorkflowStage(currentStage);
                var allStages   = changeWorkflowService.GetWorkflowStages().OrderByDescending(lv => lv.StageOrderNumber).ToList();
                var partialView = Helpers.RenderPartial("~/Views/Shared/Partial/Workflow/ChangeWorkflowStages.cshtml", allStages);
                return(Ok(partialView));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
 public void UpdateWorkflowStage(ChangeWorkflowStage stage)
 {
     var original = workflowStagesRepository.GetById(s => s.StageId == stage.StageId);
     workflowStagesRepository.Update(original, stage.AutoMapObject<ChangeWorkflowStage, DB.ChangeWorkflowStage>());
 }
 public ChangeWorkflowStage CreateWorkflowStage(ChangeWorkflowStage stage)
 {
     var workflowStage = workflowStagesRepository.Insert(stage.AutoMapObject<ChangeWorkflowStage, DB.ChangeWorkflowStage>());
     return workflowStage.AutoMapObject<DB.ChangeWorkflowStage, ChangeWorkflowStage>();
 }