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); }
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()); }
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; } }
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)); }
public void DesassociarPromocaoPost(ZAdmin_RN.PromocaoRedesSociais.ProcessoRedeSocialFiltros filtros) { var RN = new ZAdmin_RN.PromocaoRedesSociais.PromocaoRedesSociais(Configuracoes.ServidorElastic, Configuracoes.IndexElastic); RN.desassociarPromocaoPost(filtros); }
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)); }