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))); }