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); }
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 }); }