コード例 #1
0
        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));
            }
        }