public ActionResult Create(RequestDelegatePermissionsViewModel requestViewModel) { if (requestViewModel == null || requestViewModel.RequestModel == null) { return(RedirectToAction("BadRequestError", "Home", new { message = "Не передана ссылка на ресурс" })); } if (!_securityService.CanCreate(requestViewModel.RequestModel)) { return(RedirectToAction("ForbiddenError", "Home")); } Validate(requestViewModel.RequestModel); if (!ModelState.IsValid) { ViewData["SecurityService"] = _securityService; return(View(_requestService.GetRequestViewModelBy(requestViewModel.RequestModel))); } try { var request = _requestService.InsertRequest(requestViewModel.RequestModel); _requestService.SaveChanges(); var emails = _emailBuilder.CreateRequestEmails( _requestService.GetRequestById(request.IdRequest, true)); _emailSender.Send(emails); return(RedirectToAction("Detail", "Request", new { id = request.IdRequest })); } catch (DbUpdateException e) { return(RedirectToAction("ConflictError", "Home", new { message = ExceptionHelper.RollToInnerException(e).Message })); } }