示例#1
0
        public ActionResult PresencaOnline(int id)
        {
            ViewBag.idEmpresa = id;
            var rn         = new ZRN.Empresas.Noticias();
            var rnempresas = new ZRN.Empresas.Empresas();

            int idcliente = ((Usuario)Session["usuario"]).idCliente;
            var RNCliente = new ZRN.Clientes.Clientes();

            var verificarAcesso = RNCliente.VerificaAcessoEmpresaVertente(ZRN.Vertentes.enumVertentes.PresencaOnline, id, idcliente);

            if (verificarAcesso)
            {
                var noticiaView = new ViewModel.Empresa.EmpresaNoticias();

                noticiaView.noticiafonteempresa = rn.RetornaFonteNotciasEmpresa(id);
                noticiaView.empresa             = rnempresas.RetornaDescricaoEmpresa(id);

                return(View(noticiaView));
            }

            else
            {
                return(RedirectToAction("PresencaOnline_semAcesso", "Empresa"));
            }
        }
示例#2
0
        public IEnumerable <Empresa> RetornaEmpresas(FiltroEmpresas filtro, CampoOrdenacao ordernacao, SentidoOrdenacao sentidoord)
        {
            var RNCliente = new Clientes.Clientes();


            var empresasBD = (from e in _bd.empresas
                              join ea in _bd.cliente_empresas on e.idempresa equals ea.idempresa
                              where !e.excluido && ea.idcliente == filtro.idcliente && ea.excluido == false &&
                              (
                                  e.nome.ToLower() == filtro.pesquisa.ToLower() ||
                                  e.nome.Contains(filtro.pesquisa.ToLower()) ||
                                  filtro.pesquisa == "" ||
                                  filtro.pesquisa == null
                              )
                              select e);


            if (RNCliente.AcessoTodasEmpresas(filtro.idcliente) == true)
            {
                empresasBD = (from e in _bd.empresas
                              where !e.excluido &&
                              (
                                  e.nome.ToLower() == filtro.pesquisa.ToLower() ||
                                  e.nome.Contains(filtro.pesquisa.ToLower()) ||
                                  filtro.pesquisa == "" ||
                                  filtro.pesquisa == null
                              )
                              select e);
            }



            var rncliente = new ZRN.Clientes.Clientes();

            var vertentes = rncliente.RetornaVertentesAssociada(filtro.idcliente);

            switch (ordernacao)
            {
            case CampoOrdenacao.Nome:
                if (sentidoord == SentidoOrdenacao.Crescente)
                {
                    empresasBD = empresasBD.OrderBy(x => x.nome);
                }
                else
                {
                    empresasBD = empresasBD.OrderByDescending(x => x.nome);
                }
                break;

            case CampoOrdenacao.Setor:
                if (sentidoord == SentidoOrdenacao.Crescente)
                {
                    empresasBD = empresasBD.OrderBy(x => x.setoresempresa.nome);
                }
                else
                {
                    empresasBD = empresasBD.OrderByDescending(x => x.setoresempresa.nome);
                }
                break;

            default:
                empresasBD = empresasBD.OrderBy(x => x.nome);
                break;
            }
            _totalEmpresas = empresasBD.Count();
            if (_totalEmpresas > 0)
            {
                empresasBD = empresasBD.Skip(filtro.regInicial).Take(filtro.qtdregistros);

                var dataAnoAnterior = DateTime.Now.AddYears(-1);
                dataAnoAnterior = dataAnoAnterior.AddMonths(1);
                var dataIni = new DateTime(dataAnoAnterior.Year, dataAnoAnterior.Month, 1);

                //  var dataIni = DateTime.Now.AddYears(-1);
                var dataFim = DateTime.Now;

                var RNNoticias  = new ZRN.Empresas.Noticias(_servidorElastic, _indexElastic);
                var RNPromocoes = new ZRN.Empresas.Promocoes();


                var empresas = (from e in empresasBD.ToList()
                                select new Empresa()
                {
                    idempresa = e.idempresa,
                    idsetor = e.idsetor,
                    nomeSetor = e.setoresempresa.nome,
                    nome = e.nome,
                    descricao = e.descricao,
                    urlsite = e.urlsite,
                    imagem = e.imagem,
                    VertenteClientes = new Clientes.ClienteVertentes()
                    {
                        noticias = vertentes.noticias,
                        produtos = vertentes.produtos,
                        promocoes = vertentes.promocoes,
                        redessociais = vertentes.redessociais,
                        presencaonline = vertentes.presencaonline
                    },

                    qtdLancamentos = vertentes.produtos == true ? (from mapaRegistro in _bd.mapa_registros
                                                                   join empresaMapa in _bd.mapa_registro_empresa on mapaRegistro.idregistro equals empresaMapa.idregistro
                                                                   where empresaMapa.idempresa == e.idempresa && mapaRegistro.dataconcessao >= dataIni && mapaRegistro.dataconcessao <= dataFim
                                                                   select mapaRegistro).Count() : 0,

                    qtdNoticias = vertentes.noticias == true ? RNNoticias.RetornaQuantidadeNoticiasMesElastic(e.idempresa, dataIni, dataFim) : 0,

                    qtdPromocoes = vertentes.promocoes == true ? RNPromocoes.RetornaQtdPromocoesUltimosDozeMeses(e.idempresa) : 0,

                    rankBrasil = vertentes.presencaonline == true ? (from pOnline in _bd.presenca_online_capturas
                                                                     where pOnline.datacaptura >= dataIni &&
                                                                     pOnline.datacaptura <= dataFim &&
                                                                     pOnline.idempresa == e.idempresa
                                                                     orderby pOnline.datacaptura descending
                                                                     select pOnline.rankbrasil).FirstOrDefault() : 0,
                }).ToList();

                List <int> listaIds = new List <int>();

                foreach (var e in empresas)
                {
                    listaIds.Add(e.idempresa);
                }

                string listaIdsEmpresa = String.Join(",", listaIds);

                string dataInial = dataIni.ToString("yyyy-MM-dd");
                string dataFinal = dataFim.ToString("yyyy-MM-dd");

                if (vertentes.redessociais == true)
                {
                    string query = "CALL GetTotalPublicacoesRedesSociais('" + listaIdsEmpresa + "', '" + dataInial + "', '" + dataFinal + "');";

                    var resultados = _bd.Database.SqlQuery <TotalInteracoes>(query).ToList();

                    foreach (var empresa in empresas)
                    {
                        if (resultados != null)
                        {
                            var totalPublicacoes = resultados.FirstOrDefault(r => r.idEmpresa == empresa.idempresa);
                            if (totalPublicacoes != null)
                            {
                                empresa.qtdPublicacoes = Convert.ToInt64(totalPublicacoes.totalGeral);
                            }
                        }
                    }
                }


                return(empresas);
            }
            else
            {
                return(null);
            }
        }