Example #1
0
 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 }));
     }
 }