public IHttpActionResult Curtir(int PostID, bool Curtir) { int UsuarioId = Util.Utilitarios.GetTokenUsuarioLogado(Request); PostInteracao POST_INTERACAO = db.PostsInteracoes .FirstOrDefault(pp => pp.PostId == PostID && pp.UsuarioId == UsuarioId && pp.Tipo == PostInteracao.TipoInteracao.Curtida); Post POST = db.Posts.Find(PostID); if (POST_INTERACAO == null) { if (Curtir) { POST_INTERACAO = new PostInteracao(); POST_INTERACAO.PostId = PostID; POST_INTERACAO.UsuarioId = Util.Utilitarios.GetTokenUsuarioLogado(Request); POST_INTERACAO.Tipo = PostInteracao.TipoInteracao.Curtida; POST_INTERACAO.Data = DateTime.Now; db.PostsInteracoes.Add(POST_INTERACAO); POST.QuantidadeCurtidas++; //push Usuario UsuarioLogado = db.Usuarios.Find(UsuarioId); List <UsuarioToken> Tokens = db.UsuarioTokens.Where(tt => tt.UsuarioId == POST.UsuarioId).ToList(); foreach (var T in Tokens) { switch (T.Plataforma) { case UsuarioToken.Plataformas.Android: Utilitarios.EnviaNotificacaoAndroid("Curtida", UsuarioLogado.Nome + " curtiu sua postagem.", PostID, T.Token); break; case UsuarioToken.Plataformas.iOS: Utilitarios.EnviaNotificacaoIOS("Curtida", UsuarioLogado.Nome + " curtiu sua postagem.", PostID, T.Token); break; } } } } else { if (!Curtir) { db.PostsInteracoes.Remove(POST_INTERACAO); POST.QuantidadeCurtidas--; } } db.SaveChanges(); return(Ok()); }
public IHttpActionResult Comentar(int PostID, String Texto) { PostInteracao POST_INTERACAO = new PostInteracao(); POST_INTERACAO.PostId = PostID; POST_INTERACAO.UsuarioId = Util.Utilitarios.GetTokenUsuarioLogado(Request); POST_INTERACAO.Tipo = PostInteracao.TipoInteracao.Comentario; POST_INTERACAO.Data = DateTime.Now; POST_INTERACAO.Texto = Texto; db.PostsInteracoes.Add(POST_INTERACAO); Post POST = db.Posts.Find(PostID); POST.QuantidadeComentarios++; db.SaveChanges(); //push Usuario UsuarioLogado = db.Usuarios.Find(POST_INTERACAO.UsuarioId); List <UsuarioToken> Tokens = db.UsuarioTokens.Where(tt => tt.UsuarioId == POST.UsuarioId).ToList(); String TextoDaNotificacao = Texto; if (TextoDaNotificacao.Length > 30) { TextoDaNotificacao = TextoDaNotificacao.Substring(0, 30); } foreach (var T in Tokens) { switch (T.Plataforma) { case UsuarioToken.Plataformas.Android: Utilitarios.EnviaNotificacaoAndroid("Comentário", UsuarioLogado.Nome + " comentou: " + TextoDaNotificacao, PostID, T.Token); break; case UsuarioToken.Plataformas.iOS: Utilitarios.EnviaNotificacaoIOS("Comentário", UsuarioLogado.Nome + " comentou: " + TextoDaNotificacao, PostID, T.Token); break; } } return(Ok()); }