public async Task <Postagem> InserirPostagem(PostagemInput input) { var usuarioId = _logado.ObterUsuarioLogado(); var postagem = new Postagem(input.Texto, input.FotoPost, usuarioId); if (!postagem.EhValido()) { throw new ArgumentException("Você não pode inserir uma postagem vazia"); } int id = await _postagemRepository .InserirPostagem(postagem) .ConfigureAwait(false); postagem.SetId(id); return(postagem); }
public async Task <List <AmigosViewModel> > ObterListaDeAmigos() { var idSeguidor = _logado.ObterUsuarioLogado(); var amigos = await _amigosRepository .ObterNomeListaDeAmigos(idSeguidor) .ConfigureAwait(false); List <AmigosViewModel> listaAmigos = new List <AmigosViewModel>(); foreach (Amigos amigo in amigos) { listaAmigos.Add(new AmigosViewModel() { IdAmigo = amigo.IdUsuarioSeguido, NomeAmigo = amigo.NomeAmigo }); } return(listaAmigos); }
public async Task <string> Curtir(int postagemId) { var postagens = await _postagemRepository .ObterPostagens() .ConfigureAwait(false); if (!postagens.Contains(postagemId)) { throw new ArgumentException("Não existe publicação com esse ID"); } var usuarioId = _logado.ObterUsuarioLogado(); var curtida = await _curtidasRepository .GetByUsuarioIdAndPostagemIdAsync(usuarioId, postagemId) .ConfigureAwait(false); var usuarioPostagemId = await _postagemRepository .GetUsuarioIdByPostagemId(postagemId); var amigosId = await _amigosRepository .ObterListaDeAmigos(usuarioId) .ConfigureAwait(false); if (amigosId.Contains(usuarioPostagemId) || usuarioPostagemId == usuarioId) { if (curtida != null) { var descurtiu = await _curtidasRepository .Descurtir(curtida.Id) .ConfigureAwait(false); var resultado = ("Você descurtiu a postagem de número " + postagemId); return(resultado); } else { var novaCurtida = new Curtidas(usuarioId, postagemId); var curtiu = await _curtidasRepository .Curtir(novaCurtida) .ConfigureAwait(false); var resultado = ("Você curtiu a postagem de número " + postagemId); return(resultado); } } else { throw new Exception("Você não pode curtir essa publicação, porque você não segue este usuário"); } }
public async Task <Comentario> InserirComentario(int idPostagem, ComentarioInput input) { var postagens = await _postagemRepository .ObterPostagens() .ConfigureAwait(false); if (!postagens.Contains(idPostagem)) { throw new Exception("Não existe publicação com esse ID"); } var usuarioId = _logado.ObterUsuarioLogado(); var usuarioPostagemId = await _postagemRepository .GetUsuarioIdByPostagemId(idPostagem); var amigosId = await _amigosRepository .ObterListaDeAmigos(usuarioId) .ConfigureAwait(false); if (amigosId.Contains(usuarioPostagemId) || usuarioPostagemId == usuarioId) { var comentario = new Comentario(idPostagem, usuarioId, input.Texto); if (!comentario.EhValido()) { throw new ArgumentException("Você não pode inserir um comentário vazio"); } var id = await _comentarioRepository .InserirComentario(comentario) .ConfigureAwait(false); comentario.SetId(id); return(comentario); } else { throw new Exception("Você não pode comentar essa publicação, porque você não segue este usuário"); } }