public JsonResult UpdateStatus(int id /* project id */, int stepId, ProjectStepStatus projectStepStatus) { var validationResult = new ValidationChangeStatusResult() {IsValid = true}; // load the project step var step = Db.ProjectSteps.Where(a => a.Id == stepId).SingleOrDefault(); if (step == null) { validationResult.IsValid = false; validationResult.Errors.Add("Unable to find step"); return Json(validationResult); } _projectService.UpdateStatus(stepId, projectStepStatus, CurrentUserId); validationResult.ProjectStepId = stepId; return Json(validationResult); }
public ValidationChangeStatusResult ValidateChangeStatus(ProjectStep projectStep, bool complete = false, bool working = false) { Check.Require(projectStep != null, "projectStep is required."); Check.Require(complete || working, "The status must be moved to either working or complete status."); var result = new ValidationChangeStatusResult(); switch (projectStep.Step.Order) { case 1: result.IsValid = working ? Step1Start(projectStep, result.Warnings, result.Errors) : (complete ? Step1Complete(projectStep, result.Warnings, result.Errors) : false ); break; case 2: result.IsValid = working ? Step2Start(projectStep, result.Warnings, result.Errors) : (complete ? Step2Complete(projectStep, result.Warnings, result.Errors) : false ); break; case 3: result.IsValid = working ? Step3Start(projectStep, result.Warnings, result.Errors) : (complete ? Step3Complete(projectStep, result.Warnings, result.Errors) : false ); break; case 4: result.IsValid = working ? Step4Start(projectStep, result.Warnings, result.Errors) : (complete ? Step4Complete(projectStep, result.Warnings, result.Errors) : false ); break; case 5: result.IsValid = working ? Step5Start(projectStep, result.Warnings, result.Errors) : (complete ? Step5Complete(projectStep, result.Warnings, result.Errors) : false ); break; case 6: result.IsValid = working ? Step6Start(projectStep, result.Warnings, result.Errors) : (complete ? Step6Complete(projectStep, result.Warnings, result.Errors) : false ); break; case 7: result.IsValid = working ? Step7Start(projectStep, result.Warnings, result.Errors) : (complete ? Step7Complete(projectStep, result.Warnings, result.Errors) : false ); break; case 8: result.IsValid = working ? Step8Start(projectStep, result.Warnings, result.Errors) : (complete ? Step8Complete(projectStep, result.Warnings, result.Errors) : false ); break; case 9: result.IsValid = working ? Step9Start(projectStep, result.Warnings, result.Errors) : (complete ? Step9Complete(projectStep, result.Warnings, result.Errors) : false ); break; default: result = null; // an invalid step was passed break; } Check.Require(result != null, "Result cannot be null, an invalid project step was passed to validation."); return result; }