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