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")); } }
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); } }