public void Executar(CriarComentarioRequisicao requisicao)
        {
            var resultado = new CriarComentarioResultado();

            try
            {
                var post = postRepositorio.ObterPorUrl(requisicao.UrlDoPost);

                var comentario = new Comentario();
                comentario.CodigoDoPost = post.Codigo;
                comentario.Nome = requisicao.Nome;
                comentario.Email = requisicao.Email;
                comentario.Mensagem = requisicao.Mensagem;
                comentario.Data = DateTime.Now;

                postRepositorio.SalvarComentario(comentario);

                resultado.Nome = comentario.Nome;
                resultado.Email = comentario.Email;
                resultado.Mensagem = comentario.Mensagem;
                resultado.Data = comentario.Data;

            }
            catch (Exception ex)
            {
                resultado.NotificacoesDeErro.Add("Erro ao criar comentário.");
            }

            this.Apresentador.Apresentar(resultado);
        }
Esempio n. 2
0
 public ActionResult Comentar(ComentarioViewModel viewModel)
 {
     var requisicao = new CriarComentarioRequisicao();
     requisicao.Nome = viewModel.Nome;
     requisicao.Email = viewModel.Email;
     requisicao.Mensagem = viewModel.Mensagem;
     requisicao.UrlDoPost = viewModel.UrlDoPost;
     var apresentador = new CriarComentarioApresentador();
     this.criarComentarioExecutor.Apresentador = apresentador;
     this.criarComentarioExecutor.Executar(requisicao);
     var urlDividida = viewModel.UrlDoPost.Split('/');
     string dia = urlDividida[2];
     string mes = urlDividida[1];
     string ano = urlDividida[0];
     string titulo = urlDividida[3];
     return RedirectToAction("Detalhar", new { ano = ano, mes = mes, dia = dia, titulo = titulo });
 }