示例#1
0
        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());
        }
示例#2
0
        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());
        }