示例#1
0
        public ZAdmin_RN.PromocaoRedesSociais.PromocaoRedeSocial retornaRedesSocias(ZAdmin_RN.PromocaoRedesSociais.ProcessoRedeSocialFiltros filtros)
        {
            filtros.dataIni = filtros.dataIni == null?DateTime.Now.AddYears(-1) : new DateTime(filtros.dataIni.Value.Year, filtros.dataIni.Value.Month, filtros.dataIni.Value.Day, 00, 00, 00, 123);

            filtros.dataFim = filtros.dataFim == null ? DateTime.Now : new DateTime(filtros.dataFim.Value.Year, filtros.dataFim.Value.Month, filtros.dataFim.Value.Day, 23, 59, 59, 123);

            var DadosRedesSociais = new ZAdmin_RN.PromocaoRedesSociais.PromocaoRedeSocial();

            switch (filtros.nomeRede)
            {
            case "facebook":
                DadosRedesSociais.ListaFacebook      = retornaListaFacebook(filtros);
                DadosRedesSociais.TotalListaFacebook = _totalFace;
                break;

            case "twitter":
                DadosRedesSociais.ListaTwitter      = retornaListaTwitter(filtros);
                DadosRedesSociais.TotalListaTwitter = _totalTw;
                break;

            case "instagram":
                DadosRedesSociais.ListaInstagram      = retornaListaInstagram(filtros);
                DadosRedesSociais.TotalListaInstagram = _totalInsta;
                break;

            case "youtube":
                DadosRedesSociais.ListaYoutube      = retornaListaYoutube(filtros);
                DadosRedesSociais.TotalListaYoutube = _totalYt;
                break;
            }

            return(DadosRedesSociais);
        }
示例#2
0
        public List <fb_post> retornaListaFacebook(ZAdmin_RN.PromocaoRedesSociais.ProcessoRedeSocialFiltros filtros)
        {
            var node     = new Uri(_server);
            var settings = new ConnectionSettings(node);

            settings.DisableDirectStreaming(true);
            settings.DefaultIndex(_indexElastic + "fb_posts");

            var client = new ElasticClient(settings);

            var resultado = client.Search <ZAdmin_RN.PromocaoRedesSociais.fb_post>(s => s
                                                                                   .Size(filtros.QtdRegistros)
                                                                                   .From(filtros.paginaAtual)
                                                                                   .Query(q =>

                                                                                          (filtros.idempresa != 0 && filtros.idempresa != null ? q.Term("idempresa", filtros.idempresa) : null) &&

                                                                                          (filtros.idpromocao != 0 ? q.Match(m => m.Field("promocoes.idpromocao").Query(filtros.idpromocao.ToString())) : null) &&

                                                                                          q.MultiMatch(m => m
                                                                                                       .Fields(f => f.Field(p => p.postagem)
                                                                                                               )
                                                                                                       .Query(filtros.textoPesquisa)
                                                                                                       .Operator(Operator.Or)
                                                                                                       ) &&

                                                                                          q.DateRange(d => d
                                                                                                      .Field(f => f.datahora)
                                                                                                      .GreaterThanOrEquals(string.Format("{0:dd/MM/yy 00:00:00}", filtros.dataIni))
                                                                                                      .LessThanOrEquals(string.Format("{0:dd/MM/yy 23:59:59}", filtros.dataFim))
                                                                                                      )
                                                                                          )
                                                                                   .Sort(x => x.Descending(p => p.datahora))
                                                                                   );

            _totalFace = resultado.Documents.Count > 0 ? Convert.ToInt32(resultado.Total) : 0;


            return(resultado.Documents.ToList());
        }
示例#3
0
        public void desassociarPromocaoPost(ZAdmin_RN.PromocaoRedesSociais.ProcessoRedeSocialFiltros filtros)
        {
            var node     = new Uri(_server);
            var settings = new ConnectionSettings(node);

            settings.DisableDirectStreaming(true);

            // Desassociar do banco Mysql
            // ----------------------------------------
            switch (filtros.nomeRede)
            {
            case "facebook":
                var face = db.promo_fb_posts.Where(x => x.idpost == filtros.idpost && x.idpromocao == filtros.idpromocao).FirstOrDefault();
                if (face != null)
                {
                    db.promo_fb_posts.Attach(face);
                    db.promo_fb_posts.Remove(face);
                    db.SaveChanges();
                }
                var listaFace = (
                    from pro in db.promo_promocoes
                    join p in db.promo_fb_posts on pro.idpromocao equals p.idpromocao
                    where p.idpost == filtros.idpost
                    select new { idpromocao = pro.idpromocao, nome = pro.nome }
                    ).ToList();

                // Desassociar do Elastic de redes social
                // ----------------------------------------
                settings.DefaultIndex(_indexElastic + "fb_posts");

                var clientFace = new ElasticClient(settings);
                clientFace.Update <ZAdmin_RN.PromocaoRedesSociais.fb_post, object>(
                    filtros.idpost,
                    d => d.Doc(new { promocoes = listaFace })
                    );
                // Desassociar do Elastic de promoção
                // ----------------------------------------
                var listarPosts = (
                    from posts in db.fb_posts
                    join pp in db.promo_fb_posts on posts.idpost equals pp.idpost
                    where pp.idpromocao == filtros.idpromocao
                    select posts).ToList();

                var novosPosts = listarPosts.Select(posts => new ZAdmin_RN.Promocao.FacePost()
                {
                    datahora          = string.Format("{0:dd/MM/yyy HH:mm:ss}", posts.datahora),
                    idpost            = Convert.ToInt32(posts.idpost),
                    nomeimagem        = posts.nomeimagem,
                    postagem          = posts.postagem,
                    compartilhamentos = Convert.ToInt32(posts.compartilhamentos),
                    curtidas          = posts.reacoes,
                    qtdcomentarios    = posts.fb_comentarios.Count(),
                    //comentarios = null,
                    //promocoes = posts.promo_fb_posts.Select(promo => new Promocao.Promo() { idpromocao = promo.idpromocao.Value, nomepromocao = promo.promo_promocoes.nome }).ToList()
                }
                                                    ).ToList();

                settings.DefaultIndex(_indexElastic + "promocoes");
                var clientPromoFace = new ElasticClient(settings);

                clientPromoFace.Update <ZAdmin_RN.Promocao.PromocaoElastic, object>(
                    filtros.idpromocao,
                    d => d.Doc(
                        new
                {
                    postsfacebook = novosPosts
                }
                        ).Type("promocao")
                    );

                break;

            case "twitter":
                var tw = db.promo_tw_posts.Where(x => x.idpost == filtros.idpost && x.idpromocao == filtros.idpromocao).FirstOrDefault();
                if (tw != null)
                {
                    db.promo_tw_posts.Attach(tw);
                    db.promo_tw_posts.Remove(tw);
                    db.SaveChanges();
                }
                var listaTw = (
                    from pro in db.promo_promocoes
                    join p in db.promo_tw_posts on pro.idpromocao equals p.idpromocao
                    where p.idpost == filtros.idpost
                    select new { idpromocao = pro.idpromocao, nome = pro.nome }
                    ).ToList();

                // Desassociar do Elastic de redes social
                // ----------------------------------------
                settings.DefaultIndex(_indexElastic + "tw_posts");

                var clientTw = new ElasticClient(settings);
                clientTw.Update <ZAdmin_RN.PromocaoRedesSociais.tw_post, object>(
                    filtros.idpost,
                    d => d.Doc(new { promocoes = listaTw })
                    );
                // Desassociar do Elastic de promoção
                // ----------------------------------------
                var listarPostsTw = (
                    from posts in db.tw_posts
                    join pp in db.promo_tw_posts on posts.idpost equals pp.idpost
                    where pp.idpromocao == filtros.idpromocao
                    select posts).ToList();

                var novosPostsTw = listarPostsTw.Select(posts => new ZAdmin_RN.Promocao.TwPost()
                {
                    datahora   = string.Format("{0:dd/MM/yyy HH:mm:ss}", posts.datahora),
                    idpost     = Convert.ToInt32(posts.idpost),
                    nomeimagem = posts.nomeimagem,
                    postagem   = posts.postagem,
                    curtidas   = posts.qtdfavoritado.Value,
                    retweets   = posts.qtdretweets.Value,
                    //promocoes = posts.promo_tw_posts.Select(promo => new Promocao.Promo() { idpromocao = promo.idpromocao.Value, nomepromocao = promo.promo_promocoes.nome }).ToList()
                }
                                                        ).ToList();

                settings.DefaultIndex(_indexElastic + "promocoes");
                var clientPromoTw = new ElasticClient(settings);

                clientPromoTw.Update <ZAdmin_RN.Promocao.PromocaoElastic, object>(
                    filtros.idpromocao,
                    d => d.Doc(
                        new
                {
                    poststwitter = novosPostsTw
                }
                        ).Type("promocao")
                    );

                break;

            case "instagram":
                var insta = db.promo_insta_posts.Where(x => x.idpost == filtros.idpost && x.idpromocao == filtros.idpromocao).FirstOrDefault();
                if (insta != null)
                {
                    db.promo_insta_posts.Attach(insta);
                    db.promo_insta_posts.Remove(insta);
                    db.SaveChanges();
                }
                var listaIns = (
                    from pro in db.promo_promocoes
                    join p in db.promo_insta_posts on pro.idpromocao equals p.idpromocao
                    where p.idpost == filtros.idpost
                    select new { idpromocao = pro.idpromocao, nome = pro.nome }
                    ).ToList();

                // Desassociar do Elastic de redes social
                // ----------------------------------------
                settings.DefaultIndex(_indexElastic + "insta_posts");

                var clientIns = new ElasticClient(settings);
                clientIns.Update <ZAdmin_RN.PromocaoRedesSociais.insta_post, object>(
                    filtros.idpost,
                    d => d.Doc(new { promocoes = listaIns })
                    );
                // Desassociar do Elastic de promoção
                // ----------------------------------------
                var listarPostsIns = (
                    from posts in db.insta_posts
                    join pp in db.promo_insta_posts on posts.idpost equals pp.idpost
                    where pp.idpromocao == filtros.idpromocao
                    select posts).ToList();

                var novosPostsIns = listarPostsIns.Select(posts => new ZAdmin_RN.Promocao.InstaPost()
                {
                    datahora       = string.Format("{0:dd/MM/yyy HH:mm:ss}", posts.datahora),
                    idpost         = Convert.ToInt32(posts.idpost),
                    nomeimagem     = posts.nomeimagem,
                    postagem       = posts.postagem,
                    curtidas       = posts.qtdcurtidas.Value,
                    qtdcomentarios = posts.qtdcomentarios.Value,
                    //promocoes = posts.promo_insta_posts.Select(promo => new Promocao.Promo() { idpromocao = promo.idpromocao.Value, nomepromocao = promo.promo_promocoes.nome }).ToList()
                }
                                                          ).ToList();

                settings.DefaultIndex(_indexElastic + "promocoes");
                var clientPromoIns = new ElasticClient(settings);

                clientPromoIns.Update <ZAdmin_RN.Promocao.PromocaoElastic, object>(
                    filtros.idpromocao,
                    d => d.Doc(
                        new
                {
                    postsinstagram = novosPostsIns
                }
                        ).Type("promocao")
                    );

                break;

            case "youtube":
                var yt = db.promo_yt_videos.Where(x => x.idvideo == filtros.idpost && x.idpromocao == filtros.idpromocao).FirstOrDefault();
                if (yt != null)
                {
                    db.promo_yt_videos.Attach(yt);
                    db.promo_yt_videos.Remove(yt);
                    db.SaveChanges();
                }
                var listaYt = (
                    from pro in db.promo_promocoes
                    join p in db.promo_yt_videos on pro.idpromocao equals p.idpromocao
                    where p.idvideo == filtros.idpost
                    select new { idpromocao = pro.idpromocao, nome = pro.nome }
                    ).ToList();

                // Desassociar do Elastic de redes social
                // ----------------------------------------
                settings.DefaultIndex(_indexElastic + "yt_posts");

                var clientYt = new ElasticClient(settings);
                clientYt.Update <ZAdmin_RN.PromocaoRedesSociais.yt_video, object>(
                    filtros.idpost,
                    d => d.Doc(new { promocoes = listaYt })
                    );

                // Desassociar do Elastic de promoção
                // ----------------------------------------
                var listarPostsYt = (
                    from posts in db.yt_videos
                    join pp in db.promo_yt_videos on posts.idvideo equals pp.idvideo
                    where pp.idpromocao == filtros.idpromocao
                    select posts).ToList();

                var novosPostsYt = listarPostsYt.Select(posts => new ZAdmin_RN.Promocao.VideoYt()
                {
                    datahora       = string.Format("{0:dd/MM/yyy HH:mm:ss}", posts.datahora),
                    idvideo        = Convert.ToInt32(posts.idvideo),
                    nomeimagem     = posts.nomeimagem,
                    descricao      = posts.descricao,
                    curtidas       = posts.qtdcurtidas,
                    qtdcomentarios = posts.qtdcomentarios,
                    visualizacoes  = posts.qtdvisualizacoes,
                    descurtidas    = posts.qtddescurtidas,
                    //promocoes = posts.promo_yt_videos.Select(promo => new Promocao.Promo() { idpromocao = promo.idpromocao.Value, nomepromocao = promo.promo_promocoes.nome }).ToList()
                }
                                                        ).ToList();

                settings.DefaultIndex(_indexElastic + "promocoes");
                var clientPromoYt = new ElasticClient(settings);

                clientPromoYt.Update <ZAdmin_RN.Promocao.PromocaoElastic, object>(
                    filtros.idpromocao,
                    d => d.Doc(
                        new
                {
                    videosyoutube = novosPostsYt
                }
                        ).Type("promocao")
                    );
                break;
            }
        }
示例#4
0
        public string AssociarPromocaoPost(ZAdmin_RN.PromocaoRedesSociais.ProcessoRedeSocialFiltros filtros)
        {
            var RN = new ZAdmin_RN.PromocaoRedesSociais.PromocaoRedesSociais(Configuracoes.ServidorElastic, Configuracoes.IndexElastic);

            return(RN.associarPromocaoPost(filtros.idpromocao, filtros.idpost, filtros.nomeRede));
        }
示例#5
0
        public void DesassociarPromocaoPost(ZAdmin_RN.PromocaoRedesSociais.ProcessoRedeSocialFiltros filtros)
        {
            var RN = new ZAdmin_RN.PromocaoRedesSociais.PromocaoRedesSociais(Configuracoes.ServidorElastic, Configuracoes.IndexElastic);

            RN.desassociarPromocaoPost(filtros);
        }
示例#6
0
        public ZAdmin_RN.PromocaoRedesSociais.PromocaoRedeSocial Pesquisar(ZAdmin_RN.PromocaoRedesSociais.ProcessoRedeSocialFiltros filtros)
        {
            var RN = new ZAdmin_RN.PromocaoRedesSociais.PromocaoRedesSociais(Configuracoes.ServidorElastic, Configuracoes.IndexElastic);

            return(RN.retornaRedesSocias(filtros));
        }