예제 #1
0
        public int CadastrarPromocao(Promocao dados)
        {
            int idpromocao;

            idpromocao = CadastroSalvarPromocaoMySQL(dados);
            CadastroSalvarPromocaoElasticSearch(idpromocao, dados);

            return(idpromocao);
        }
예제 #2
0
        public int EditarPromocao(Promocao dados)
        {
            int idpromocao;

            idpromocao = EdicaoSalvarPromocaoMySQL(dados);
            EdicaoSalvarPromocaoElasticSearch(idpromocao);

            return(idpromocao);
        }
예제 #3
0
        private int CadastroSalvarPromocaoMySQL(Promocao dados)
        {
            var db = new ZAdmin_DB.Model.zeengEntities();

            var promoDB = new ZAdmin_DB.Model.promo_promocoes();

            promoDB.idorgaoregulador       = dados.idOrgaoregulador != null ? dados.idOrgaoregulador : null;
            promoDB.idmodalidade           = dados.idModalidade != null ? dados.idModalidade : 1; //1 - outros
            promoDB.nome                   = dados.nome;
            promoDB.certificadoautorizacao = dados.certificadoAutorizacao;
            promoDB.outrosinteressados     = dados.outrosInteressados;
            promoDB.abrangencianacional    = dados.abrangenciaNacional;
            promoDB.dtcadastro             = DateTime.Now;
            promoDB.dtvigenciaini          = dados.dtVigenciaIni != null ? dados.dtVigenciaIni : null;
            promoDB.dtvigenciafim          = dados.dtVigenciaFim != null ? dados.dtVigenciaFim : null;
            promoDB.valorpremios           = dados.valorPremio;
            promoDB.linksitepromocao       = dados.linkSitePromocao;
            promoDB.linkfacebook           = dados.linkFacebook;
            promoDB.linkinstagram          = dados.linkInstagram;
            promoDB.linktwitter            = dados.linkTwitter;
            promoDB.linkyoutube            = dados.linkYoutube;
            promoDB.mecanicapromo          = dados.mecanicaPromo;
            promoDB.produtosparticipantes  = dados.produtosParticipantes;
            promoDB.premiospromo           = dados.premiosPromo;
            promoDB.linkregulamento        = dados.linkRegulamento;
            promoDB.textoregulamento       = dados.textoRegulamento;
            promoDB.excluido               = false;

            db.promo_promocoes.Add(promoDB);
            db.SaveChanges();

            // Caso o cadastro esteja sendo feito a partir de notícia
            if (dados.idNoticia > 0)
            {
                var rnPromocaoNoticia = new PromocaoNoticia(_server, _indexElastic);
                rnPromocaoNoticia.AssociaPromocaoNoticia(promoDB.idpromocao, dados.idNoticia, dados.fontePesquisa);
            }

            // Caso o cadastro esteja sendo feito a partir de um post
            if (dados.idRedeSocial > 0)
            {
                var rnPromocaoRedesSociais = new PromocaoRedesSociais.PromocaoRedesSociais(_server, _indexElastic);
                rnPromocaoRedesSociais.associarPromocaoPost(promoDB.idpromocao, dados.idRedeSocial, dados.nomeRedeSocial);
            }

            //var dadosProc = db.seae_processos.Where(x => x.idprocesso == dados.idProcesso).FirstOrDefault();
            return(promoDB.idpromocao);
        }
예제 #4
0
        public int EditarPromocao(ZAdmin_RN.Promocao.Promocao dados)
        {
            var promocaoRN = new ZAdmin_RN.Promocao.Promocoes(Configuracoes.ServidorElastic, Configuracoes.IndexElastic);

            return(promocaoRN.EditarPromocao(dados));
        }
예제 #5
0
        private void CadastroSalvarPromocaoElasticSearch(int idpromocao, Promocao dados)
        {
            var orgao = db.promo_orgaosreguladores.Where(x => x.idorgao == dados.idOrgaoregulador).FirstOrDefault();

            ZAdmin_RN.Promocao.PromocaoElastic promoElastic = new PromocaoElastic()
            {
                idpromocao         = idpromocao,
                idorgaoregulador   = dados.idOrgaoregulador,
                nomeorgaoregulador = orgao.nome,
                nome = dados.nome,
                certificadoautorizacao = dados.certificadoAutorizacao,
                dtcadastro             = DateTime.Now.ToString("yyyy-MM-dd")
            };

            if (dados.idNoticia > 0)
            {
                var noticiadb = (dados.fontePesquisa == 1) ? db.noticias.Where(x => x.idnoticia_knewin == dados.idNoticia).FirstOrDefault() :
                                db.noticias.Where(x => x.idnoticia == dados.idNoticia).FirstOrDefault();

                promoElastic.noticias = new List <Noticia>();

                Noticia noticia = new Noticia()
                {
                    idnoticia                                      = noticiadb.idnoticia,
                    autor                                          = noticiadb.autor,
                    conteudo                                       = noticiadb.conteudo,
                    titulo                                         = noticiadb.titulo,
                    datapublicacao                                 = noticiadb.datapublicacao != null?noticiadb.datapublicacao.Value.ToString("yyyy-MM-dd") : null,
                                                         url       = noticiadb.url,
                                                         nomefonte = db.fontes_noticias.Where(x => x.idfonte == noticiadb.idfonte).FirstOrDefault().nome
                };
                promoElastic.noticias.Add(noticia);
            }

            if (dados.idRedeSocial > 0)
            {
                switch (dados.nomeRedeSocial)
                {
                case "facebook":
                {
                    var postdb = db.fb_posts.Where(x => x.idpost == dados.idRedeSocial).FirstOrDefault();

                    promoElastic.postsfacebook = new List <FacePost>();

                    FacePost post = new FacePost()
                    {
                        idpost            = (int)postdb.idpost,
                        compartilhamentos = (int)postdb.compartilhamentos,
                        curtidas          = postdb.reacoes,
                        datahora          = postdb.datahora.ToString("dd/MM/yyyy HH:mm:ss"),
                        postagem          = postdb.postagem,
                        nomeimagem        = postdb.nomeimagem,
                        qtdcomentarios    = (int)postdb.comentarios
                    };

                    promoElastic.postsfacebook.Add(post);

                    break;
                }

                case "twitter":
                {
                    var postdb = db.tw_posts.Where(x => x.idpost == dados.idRedeSocial).FirstOrDefault();

                    promoElastic.poststwitter = new List <TwPost>();

                    TwPost post = new TwPost()
                    {
                        idpost     = postdb.idpost,
                        curtidas   = (int)postdb.qtdfavoritado,
                        retweets   = (int)postdb.qtdretweets,
                        datahora   = postdb.datahora.Value.ToString("dd/MM/yyyy HH:mm:ss"),
                        nomeimagem = postdb.nomeimagem,
                        postagem   = postdb.postagem
                    };

                    promoElastic.poststwitter.Add(post);
                    break;
                }

                case "instagram":
                {
                    var postdb = db.insta_posts.Where(x => x.idpost == dados.idRedeSocial).FirstOrDefault();

                    promoElastic.postsinstagram = new List <InstaPost>();

                    InstaPost post = new InstaPost()
                    {
                        idpost         = postdb.idpost,
                        curtidas       = (int)postdb.qtdcurtidas,
                        datahora       = postdb.datahora.Value.ToString("dd/MM/yyyy HH:mm:ss"),
                        nomeimagem     = postdb.nomeimagem,
                        postagem       = postdb.postagem,
                        qtdcomentarios = (int)postdb.qtdcomentarios
                    };

                    promoElastic.postsinstagram.Add(post);
                    break;
                }

                case "youtube":
                {
                    var postdb = db.yt_videos.Where(x => x.idvideo == dados.idRedeSocial).FirstOrDefault();

                    promoElastic.videosyoutube = new List <VideoYt>();

                    VideoYt post = new VideoYt()
                    {
                        idvideo        = postdb.idvideo,
                        curtidas       = postdb.qtdcurtidas,
                        datahora       = postdb.datahora.ToString("dd/MM/yyyy HH:mm:ss"),
                        nomeimagem     = postdb.nomeimagem,
                        descricao      = postdb.descricao,
                        qtdcomentarios = postdb.qtdcomentarios,
                        visualizacoes  = postdb.qtdvisualizacoes,
                        descurtidas    = postdb.qtddescurtidas
                    };

                    promoElastic.videosyoutube.Add(post);
                    break;
                }
                }
            }

            var node     = new Uri(_server);
            var settings = new ConnectionSettings(node);

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

            var client = new ElasticClient(settings);

            var resposta = client.Index(promoElastic, i => i.Type("promocao").Id(promoElastic.idpromocao));

            var promoNoticia = new PromocaoNoticia(_server, _indexElastic);

            promoNoticia.atualizaPromocaoNoticiaElasticSearch(dados.idNoticia);
        }
예제 #6
0
        public int EdicaoSalvarPromocaoMySQL(Promocao dados)
        {
            var promoDB = new ZAdmin_DB.Model.promo_promocoes();

            promoDB = db.promo_promocoes.Where(x => x.idpromocao == dados.idPromocao).FirstOrDefault();

            promoDB.idorgaoregulador       = dados.idOrgaoregulador != null ? dados.idOrgaoregulador : null;
            promoDB.idmodalidade           = dados.idModalidade != null ? dados.idModalidade : 1; // 1 - modalidade outros
            promoDB.nome                   = dados.nome;
            promoDB.certificadoautorizacao = dados.certificadoAutorizacao;
            promoDB.outrosinteressados     = dados.outrosInteressados;
            promoDB.abrangencianacional    = dados.abrangenciaNacional;

            if (dados.dtCadastro == null && promoDB.dtcadastro == null)
            {
                promoDB.dtcadastro = DateTime.Now;
            }
            else if (dados.dtCadastro != null && promoDB.dtcadastro == null)
            {
                promoDB.dtcadastro = dados.dtCadastro;
            }
            else if (dados.dtCadastro == null && promoDB.dtcadastro != null)
            {
                promoDB.dtcadastro = promoDB.dtcadastro;
            }
            else if (dados.dtCadastro != null && promoDB.dtcadastro != null)
            {
                promoDB.dtcadastro = dados.dtCadastro;
            }
            else
            {
                promoDB.dtcadastro = promoDB.dtcadastro;
            }

            if (dados.dtVigenciaIni == null && promoDB.dtvigenciaini == null)
            {
                promoDB.dtvigenciaini = null;
            }
            else if (dados.dtVigenciaIni != null && promoDB.dtvigenciaini == null)
            {
                promoDB.dtvigenciaini = dados.dtVigenciaIni;
            }
            else if (dados.dtVigenciaIni == null && promoDB.dtvigenciaini != null)
            {
                promoDB.dtvigenciaini = promoDB.dtvigenciaini;
            }
            else if (dados.dtVigenciaIni != null && promoDB.dtvigenciaini != null)
            {
                promoDB.dtvigenciaini = dados.dtVigenciaIni;
            }
            else
            {
                promoDB.dtvigenciaini = promoDB.dtvigenciaini;
            }

            if (dados.dtVigenciaFim == null && promoDB.dtvigenciafim == null)
            {
                promoDB.dtvigenciafim = null;
            }
            else if (dados.dtVigenciaFim != null && promoDB.dtvigenciafim == null)
            {
                promoDB.dtvigenciafim = dados.dtVigenciaFim;
            }
            else if (dados.dtVigenciaFim == null && promoDB.dtvigenciafim != null)
            {
                promoDB.dtvigenciafim = promoDB.dtvigenciafim;
            }
            else if (dados.dtVigenciaFim != null && promoDB.dtvigenciafim != null)
            {
                promoDB.dtvigenciafim = dados.dtVigenciaFim;
            }
            else
            {
                promoDB.dtvigenciafim = promoDB.dtvigenciafim;
            }

            promoDB.valorpremios          = dados.valorPremio;
            promoDB.linksitepromocao      = dados.linkSitePromocao;
            promoDB.linkfacebook          = dados.linkFacebook;
            promoDB.linkinstagram         = dados.linkInstagram;
            promoDB.linktwitter           = dados.linkTwitter;
            promoDB.linkyoutube           = dados.linkYoutube;
            promoDB.mecanicapromo         = dados.mecanicaPromo;
            promoDB.produtosparticipantes = dados.produtosParticipantes;
            promoDB.premiospromo          = dados.premiosPromo;
            promoDB.linkregulamento       = dados.linkRegulamento;
            promoDB.textoregulamento      = dados.textoRegulamento;
            promoDB.excluido = false;

            // Salvar empresas
            // =======================================
            if (dados.ListaEmpresas != null && dados.ListaEmpresas.Count() > 0)
            {
                foreach (var idempresa in dados.ListaEmpresas)
                {
                    var existeEmp = promoDB.promo_promoempresas.Where(x => x.idempresa == idempresa).FirstOrDefault();
                    if (existeEmp == null)
                    {
                        var empDB = new ZAdmin_DB.Model.promo_promoempresas();
                        empDB.idempresa  = idempresa;
                        empDB.idpromocao = promoDB.idpromocao;

                        promoDB.promo_promoempresas.Add(empDB);
                    }
                }
            }

            //Exclui as empresas retiradas da promoção no MySQL
            var empresasExcluir = (from e in promoDB.promo_promoempresas
                                   where (dados.ListaEmpresas == null) || !(from ev in dados.ListaEmpresas select ev).Contains(e.idempresa.Value)
                                   select e).ToList();

            foreach (var e in empresasExcluir)
            {
                db.promo_promoempresas.Remove(e);
            }

            //Salvar Estados
            if (dados.ListaEstados != null && dados.ListaEstados.Count() > 0)
            {
                foreach (var idestado in dados.ListaEstados)
                {
                    var existeEmp = db.promo_estadosabrangencia.Where(x => x.idestado == idestado && x.idpromocao == promoDB.idpromocao).FirstOrDefault();
                    if (existeEmp == null)
                    {
                        var empDB = new ZAdmin_DB.Model.promo_estadosabrangencia();
                        empDB.idestado   = idestado;
                        empDB.idpromocao = promoDB.idpromocao;

                        promoDB.promo_estadosabrangencia.Add(empDB);
                    }
                }
            }

            //Excluir estados
            var estadosExcluir = (from e in promoDB.promo_estadosabrangencia
                                  where (dados.ListaEstados == null) || !(from ev in dados.ListaEstados select ev).Contains(e.idestado.Value)
                                  select e).ToList();

            foreach (var e in estadosExcluir)
            {
                db.promo_estadosabrangencia.Remove(e);
            }

            //Salvar Municipios
            if (dados.ListaMunicipios != null && dados.ListaMunicipios.Count() > 0)
            {
                foreach (var idmunicipio in dados.ListaMunicipios)
                {
                    var existeEmp = db.promo_municipiosabrangencia.Where(x => x.idmunicipio == idmunicipio && x.idpromocao == promoDB.idpromocao).FirstOrDefault();
                    if (existeEmp == null)
                    {
                        var empDB = new ZAdmin_DB.Model.promo_municipiosabrangencia();
                        empDB.idmunicipio = idmunicipio;
                        empDB.idpromocao  = promoDB.idpromocao;

                        promoDB.promo_municipiosabrangencia.Add(empDB);
                    }
                }
            }

            //Excluir municipios
            var municipiosExcluir = (from e in promoDB.promo_municipiosabrangencia
                                     where (dados.ListaMunicipios == null) || !(from ev in dados.ListaMunicipios select ev).Contains(e.idmunicipio.Value)
                                     select e).ToList();

            foreach (var e in municipiosExcluir)
            {
                db.promo_municipiosabrangencia.Remove(e);
            }

            if (promoDB.idpromocao == 0)
            {
                db.promo_promocoes.Add(promoDB);
            }

            db.SaveChanges();

            return(promoDB.idpromocao);
        }