Пример #1
0
        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 }));
        }
Пример #2
0
        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);
            }
        }