Example #1
0
        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);
        }
Example #2
0
        private List <dynamic> obtemListaComMudancas(SqlNotificationInfo Info = SqlNotificationInfo.Unknown)
        {
            List <dynamic> mudancas = new List <dynamic>();

            if (filtro.Token == null || !Permissoes.Autenticado(filtro.Token))
            {
                return(mudancas);
            }

            semaforo.WaitOne();

            List <MonitorCargasBoot> oldList = list != null ? list : new List <MonitorCargasBoot>();

            initList();

            DateTime dtOut = DateTime.Now;

            if (list != null)
            {
                try
                {
                    if (Info.Equals(SqlNotificationInfo.Delete))
                    {
                        // Delete
                        mudancas = getListaAgrupadaEOrdenada(oldList
                                                             .Where(e => !list.Any(l => l.idLogCargaDetalhe == e.idLogCargaDetalhe))    //l.empresa.nu_cnpj == e.empresa.nu_cnpj && l.tbAdquirente.cdAdquirente == e.tbAdquirente.cdAdquirente))
                                                             .ToList <MonitorCargasBoot>(), Info);
                    }
                    else
                    {
                        // Insert, Update
                        mudancas = getListaAgrupadaEOrdenada(list
                                                             .Where(e => !oldList.Any(l => l.idLogCargaDetalhe == e.idLogCargaDetalhe && l.flStatus.Equals(e.flStatus) &&
                                                                                      ((l.dtExecucaoFim == null && e.dtExecucaoFim == null) ||
                                                                                       (l.dtExecucaoFim != null && e.dtExecucaoFim != null && l.dtExecucaoFim.Equals(e.dtExecucaoFim)))))
                                                             .ToList <MonitorCargasBoot>(), Info);
                    }
                }
                catch (Exception e)
                {
                }
            }

            semaforo.Release(1);

            return(mudancas);
        }
Example #3
0
        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 }
            });
        }
        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 }
            });
        }