public async Task <IActionResult> Comentar(PostagemNovaViewModel dadosComentario) { ViewData["Comentario"] = dadosComentario.Texto; if (!ModelState.IsValid) { return(RedirectToAction("Detalhes", dadosComentario.PostagemOriginalId)); } Postagem postagemOriginal = await _contexto.Postagens.FindAsync(dadosComentario.PostagemOriginalId); if (postagemOriginal == null) { return(RedirectToAction("Detalhes", dadosComentario.PostagemOriginalId)); } Usuario usuario = await Usuario.ObterUsuarioAsync(User, _contexto); Postagem comentario = await Postagem.PreencherAsync(dadosComentario, postagemOriginal, usuario); comentario.Comentario = true; _contexto.Postagens.Add(comentario); await _contexto.SaveChangesAsync(); return(RedirectToAction("Detalhes", new { postagemId = dadosComentario.PostagemOriginalId })); }
public async Task <IActionResult> Enviar(PostagemNovaViewModel dadosPostagem) { if (!ModelState.IsValid) { return(View("Index", dadosPostagem)); } Usuario usuario = await Usuario.ObterUsuarioAsync(User, _contexto); if (usuario == null) { ModelState.AddModelError(string.Empty, "Usuário não encontrado. Tente sair e fazer login novamente."); return(View("Index", dadosPostagem)); } List <string> errosValidacaoArquivos = new List <string>(6); foreach (var arquivoFormulario in dadosPostagem.Arquivos) { Arquivo.ValidarArquivoFormulario(arquivoFormulario, errosValidacaoArquivos); } if (errosValidacaoArquivos.Count > 0) { errosValidacaoArquivos.ForEach(erro => ModelState.AddModelError(string.Empty, erro)); return(View("Index", dadosPostagem)); } Postagem postagem; try { postagem = await Postagem.PreencherAsync(dadosPostagem, null, usuario); } catch (Exception e) { ModelState.AddModelError(string.Empty, "Não foi possível registrar a postagem.\n" + e.Message); return(View("Index", dadosPostagem)); } await _contexto.Postagens.AddAsync(postagem); await _contexto.SaveChangesAsync(); TempData["Sucesso"] = true; return(RedirectToAction("Index")); }