示例#1
0
        public ActionResult SetRequestState(int idRequest, int idRequestStateType, string agreementReason)
        {
            var request = _requestService.GetRequestById(idRequest);

            if (!_securityService.CanSetRequestState(request, idRequestStateType))
            {
                return(RedirectToAction("ForbiddenError", "Home"));
            }
            try
            {
                _requestService.SetRequestState(idRequest, idRequestStateType, agreementReason);
                _requestService.SaveChanges();
                var emails = _emailBuilder.SetRequestStateEmails(
                    _requestService.GetRequestById(idRequest, true),
                    idRequestStateType, agreementReason);
                _emailSender.Send(emails);
            }
            catch (DbUpdateException e)
            {
                return(RedirectToAction("ConflictError", "Home",
                                        new { message = ExceptionHelper.RollToInnerException(e).Message }));
            }
            ViewData["SecurityService"] = _securityService;
            return(PartialView("Request/AgreementsContent", _requestService.GetRequestViewModelBy(request)));
        }