private List <dynamic> obtemListaComMudancas(SqlNotificationInfo Info = SqlNotificationInfo.Unknown) { List <dynamic> mudancas = new List <dynamic>(); if (token == null || !Permissoes.Autenticado(token)) { return(mudancas); } semaforo.WaitOne(); List <FilaBootICard> oldList = list != null ? list : new List <FilaBootICard>(); initList(); DateTime dtOut = DateTime.Now; if (list != null) { try { if (Info.Equals(SqlNotificationInfo.Delete)) { // Delete mudancas.Add(new { NotificationInfo = Info.ToString().ToUpper(), objetos = oldList.Where(e => !list.Any(l => l.id == e.id)) .ToList <FilaBootICard>() }); } else { // Insert, Update mudancas.Add(new { NotificationInfo = Info.ToString().ToUpper(), objetos = list.Where(e => !oldList.Any(l => l.id == e.id && l.stProcessamento == e.stProcessamento && l.dtInsert == e.dtInsert && l.webpages_UsersInsert.id_users == e.webpages_UsersInsert.id_users && ((l.cdUser == null && e.cdUser == null) || (l.cdUser != null && e.cdUser != null && l.cdUser.Value == e.cdUser.Value)) &&//((l.webpages_Users == null && e.webpages_Users == null) || (l.webpages_Users != null && e.webpages_Users != null && l.webpages_Users.id_users == e.webpages_Users.id_users)) && ((l.dtProcessamento == null && e.dtProcessamento == null) || (l.dtProcessamento != null && e.dtProcessamento != null && l.dtProcessamento.Value.Equals(e.dtProcessamento.Value))))) .ToList <FilaBootICard>() }); } } catch (Exception e) { } } semaforo.Release(1); return(mudancas); }
private List <dynamic> getListaAgrupadaEOrdenada(List <MonitorCargasBoot> lista, SqlNotificationInfo Info = SqlNotificationInfo.Unknown) { if (lista == null) { return(null); } if (lista.Count == 0) { return(new List <dynamic>()); } //semaforo.WaitOne(); // Agrupa List <MonitorCargasBootAgrupado> newList = lista // Refazer agrupamento => Empresa/Adquirente -> LogCarga .GroupBy(e => new { e.empresa.nu_cnpj, e.tbAdquirente.cdAdquirente }) .Select(e => new MonitorCargasBootAgrupado { tbLogCargas = e.GroupBy(x => x.tbLogCarga.idLogCarga) .Select(x => new tbLogCargasMonitor { idLogCarga = x.Key, dtCompetencia = x.Select(d => d.tbLogCarga.dtCompetencia).FirstOrDefault(), flStatusPagosAntecipacao = x.Select(d => d.tbLogCarga.flStatusPagosAntecipacao).FirstOrDefault(), flStatusPagosCredito = x.Select(d => d.tbLogCarga.flStatusPagosCredito).FirstOrDefault(), flStatusPagosDebito = x.Select(d => d.tbLogCarga.flStatusPagosDebito).FirstOrDefault(), flStatusReceber = x.Select(d => d.tbLogCarga.flStatusReceber).FirstOrDefault(), flStatusVendasCredito = x.Select(d => d.tbLogCarga.flStatusVendasCredito).FirstOrDefault(), flStatusVendasDebito = x.Select(d => d.tbLogCarga.flStatusVendasDebito).FirstOrDefault(), tbLogCargasDetalheMonitor = x.OrderBy(d => d.dsModalidade) .GroupBy(d => d.dsModalidade) .Select(d => new tbLogCargaDetalheMonitor { dsMensagem = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.dsMensagem).FirstOrDefault(), dsModalidade = d.Key, dtExecucaoFim = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.dtExecucaoFim).FirstOrDefault(), dtExecucaoIni = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.dtExecucaoIni).FirstOrDefault(), flStatus = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.flStatus).FirstOrDefault(), idLogCargaDetalhe = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.idLogCargaDetalhe).FirstOrDefault(), qtTransacoes = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.qtTransacoes).FirstOrDefault(), vlTotalProcessado = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.vlTotalProcessado).FirstOrDefault(), qtTransacoesCS = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.qtTransacoesCS).FirstOrDefault(), vlTotalProcessadoCS = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.vlTotalProcessadoCS).FirstOrDefault(), txAuditoria = d.OrderByDescending(f => f.dtExecucaoIni).Select(f => f.txAuditoria).FirstOrDefault(), }).ToList <tbLogCargaDetalheMonitor>(), }).OrderBy(x => x.dtCompetencia).ToList <tbLogCargasMonitor>(), ultimaDataExecucaoFim = e.OrderByDescending(x => x.dtExecucaoFim) .Select(x => x.dtExecucaoFim) .FirstOrDefault(), prioridade = e.Where(x => x.flStatus == 0 || x.flStatus == 9).Count() > 0 ? 1 : 0, grupoempresa = e.Select(x => x.grupoempresa).FirstOrDefault(), empresa = e.Select(x => x.empresa).FirstOrDefault(), tbAdquirente = e.Select(x => x.tbAdquirente).FirstOrDefault(), }) .OrderByDescending(e => e.prioridade) .ThenByDescending(e => e.ultimaDataExecucaoFim) .ThenBy(e => e.empresa.ds_fantasia) .ThenBy(e => e.empresa.filial) .ThenBy(e => e.tbAdquirente.nmAdquirente) .ToList <MonitorCargasBootAgrupado>(); if (Info.Equals(SqlNotificationInfo.Unknown)) { return(newList.ToList <dynamic>()); } return(new List <dynamic>() { new { NotificationInfo = Info.ToString().ToUpper(), objetos = newList } }); }
public static void Send(string message, SqlNotificationInfo info) { IHubContext context = GlobalHost.ConnectionManager.GetHubContext <DataHub>(); context.Clients.All.newMessage(message, info.ToString()); }
private List <dynamic> getListaAgrupadaEOrdenada(List <MonitorCargas> lista, SqlNotificationInfo Info = SqlNotificationInfo.Unknown) { if (lista == null) { return(null); } if (lista.Count == 0) { return(new List <dynamic>()); } //semaforo.WaitOne(); // Agrupa List <MonitorCargasAgrupado> newList = lista .GroupBy(e => new { e.loginOperadora.id, e.loginOperadora.status }) .Select(e => new MonitorCargasAgrupado { id = e.Key.id, status = e.Key.status, logExecution = e.Select(x => new LogExecutionMonitor { id = x.id, dtaFiltroTransacoes = x.dtaFiltroTransacoes, statusExecution = x.statusExecution, dtaExecucaoFim = x.dtaExecucaoFim, dtaExecucaoProxima = x.dtaExecucaoProxima, }).OrderBy(x => x.dtaFiltroTransacoes).ToList <LogExecutionMonitor>(), ultimaDataExecucaoFim = e.OrderByDescending(x => x.dtaExecucaoFim) .Select(x => x.dtaExecucaoFim) .FirstOrDefault(), prioridade = e.Where(x => x.statusExecution.Equals("0")).Count() > 0 ? 1 : 0, grupoempresa = e.Select(x => x.grupoempresa).FirstOrDefault(), empresa = e.Select(x => x.empresa).FirstOrDefault(), operadora = e.Select(x => x.operadora).FirstOrDefault(), }) .ToList <MonitorCargasAgrupado>(); //semaforo.Release(1); // Filtro de status? if (!filtro.Status.Equals("")) { if (filtro.Status.Equals("-1")) { // Não carregado! newList = newList.Where(e => e.logExecution.Count() == 0) .OrderByDescending(e => e.prioridade) .ThenByDescending(e => e.ultimaDataExecucaoFim) .ThenBy(e => e.empresa.ds_fantasia) .ThenBy(e => e.empresa.filial) .ThenBy(e => e.operadora.nmOperadora) .ToList <MonitorCargasAgrupado>(); } else { newList = newList.Where(e => e.logExecution.Any(l => l.statusExecution.Equals(filtro.Status))) .OrderByDescending(e => e.prioridade) .ThenByDescending(e => e.ultimaDataExecucaoFim) .ThenBy(e => e.empresa.ds_fantasia) .ThenBy(e => e.empresa.filial) .ThenBy(e => e.operadora.nmOperadora) .ToList <MonitorCargasAgrupado>(); } } else { // Sem filtro de status => apenas ordena newList = newList.OrderByDescending(e => e.prioridade) .ThenByDescending(e => e.ultimaDataExecucaoFim) .ThenBy(e => e.empresa.ds_fantasia) .ThenBy(e => e.empresa.filial) .ThenBy(e => e.operadora.nmOperadora) .ToList <MonitorCargasAgrupado>(); } if (Info.Equals(SqlNotificationInfo.Unknown)) { return(newList.ToList <dynamic>()); } return(new List <dynamic>() { new { NotificationInfo = Info.ToString().ToUpper(), objetos = newList } }); }