public ActionResult Create(SolicitacaoCreateModel data) { StatusCriacaoSolicitacao statusUsuario = SolicitacaoBL.PodeCriarSolicitacao(User.Identity.Name); if (!ModelState.IsValid || statusUsuario != StatusCriacaoSolicitacao.Permitido) //Inválido { if (!ModelState.IsValid) { ViewBag.error = "Dados inválidos"; } else { switch (statusUsuario) { case StatusCriacaoSolicitacao.AvaliacaoPendente: ViewBag.error = "Usuário possui avaliações pendentes!"; break; default: ViewBag.error = "Erro na autenticação do usuário"; break; } } Fill(data); return(View(data)); } try { var user = db.Users.Find(User.Identity.Name); Solicitacao target = SolicitacaoBL.CriarSolicitacao(data.Solicitacao); target.Itens = data.Itens; target.User = user; db.Solicitacoes.Add(target); var avaliacao = AvaliacaoBL.CriarAvaliacao(target); db.Avaliacoes.Add(avaliacao); target.Avaliacao = avaliacao; db.SaveChanges(); } catch (BusinessLogicException ex) { switch (ex.Razao) { case StatusCriacaoSolicitacao.AvaliacaoPendente: TempData.Add("ErrorMessage", "Usuário possui avaliações pendentes"); break; } } return(RedirectToAction("Details", new { id = data.Solicitacao.Id })); }
public BusinessLogicException(string message, StatusCriacaoSolicitacao razao = BusinessLogic.StatusCriacaoSolicitacao.NaoEspecificado) { this.Message = message; this.Razao = razao; }
public BusinessLogicException(string message, StatusCriacaoSolicitacao razao = BusinessLogic.StatusCriacaoSolicitacao.NaoEspecificado) { this.Message = message; this.Razao = razao; }