public ActionResult CloseCase(string id) { //Checks that the user is logged in, if they aren't then they are redirected to the login page if (HttpContext.Session["username"] == null) { return(RedirectToAction("Index", "Login")); } //Checks access level of the user, to see if they can acess this page if (!Permissions.hasPermission(HttpContext.Session["accessLevel"].ToString(), Permissions.perms.CreateSupportCase)) { return(RedirectToAction("Index", "Dashboard")); } EditCase editCase = new EditCase(); editCase.id = Convert.ToInt32(id); editCase.setInfo(); //Checks if user is trying to access someone elses case and checks if they have permission to do so if (!Permissions.hasPermission(HttpContext.Session["accessLevel"].ToString(), Permissions.perms.EditOthersSupportCase) && editCase.staffUsername != HttpContext.Session["username"].ToString()) { return(RedirectToAction("Index", "SupportCases")); } editCase.closeCase(); return(RedirectToAction("EditCase", "SupportCases", new { id = editCase.id })); }
public OperationResponse <CaseDto> Put(EditCase request) { OperationResponse <CaseDto> operationResponse = new OperationResponse <CaseDto>(); ClientValidator clientValidator = new ClientValidator(); CaseInformationValidator caseInformationValidator = new CaseInformationValidator(); NotesValidator notesValidator = new NotesValidator(); CaseInformationDto caseInformation = request.CaseDto.CaseInformation; ClientDto client = request.CaseDto.Client; NotesDto notes = request.CaseDto.Notes; CaseStatusDto caseStatus = request.CaseDto.CaseStatus; List <CaseReferenceDto> references = request.CaseDto.References; ValidationResult validationResult = clientValidator.Validate(client); if (!validationResult.IsValid) { List <string> errors = new List <string>(); foreach (var error in validationResult.Errors) { errors.Add(error.ErrorMessage); } operationResponse.OnError("Invalid client data", errors); return(operationResponse); } validationResult = caseInformationValidator.Validate(caseInformation); if (!validationResult.IsValid) { List <string> errors = new List <string>(); foreach (var error in validationResult.Errors) { errors.Add(error.ErrorMessage); } operationResponse.OnError("Invalid case-information data", errors); return(operationResponse); } validationResult = notesValidator.Validate(notes); if (!validationResult.IsValid) { List <string> errors = new List <string>(); foreach (var error in validationResult.Errors) { errors.Add(error.ErrorMessage); } operationResponse.OnError("Invalid case-information data", errors); return(operationResponse); } try { CaseDto caseDto = this.CaseBusinessLogic.EditCase(client.CaseId, client, caseInformation, notes, caseStatus, references); operationResponse.OnSuccess(caseDto, "Saved successfully"); return(operationResponse); } catch (Exception e) { Log.Error(e.Message + " " + e.StackTrace); operationResponse.OnException(e.Message); return(operationResponse); } }