public MonitorCustodiaResponse ObterMonitorCustodiaMemoria(MonitorCustodiaRequest lRequest)
        {
            gLogger.Debug("Solicitação de consulta [ ObterMonitorCustodiaMemoria ] requisitada. Cliente = " + lRequest.CodigoCliente.ToString());

            MonitorCustodiaResponse lRetorno = new MonitorCustodiaResponse();

            MonitorCustodiaInfo lMonitorCliente = MonitorCustodiaDB.ConsultarDadosClienteMonitorCustodia(new MonitorCustodiaInfo()
            {
                CodigoClienteBov = lRequest.CodigoCliente.Value
            });

            if ((lMonitorCliente.CodigoClienteBov.HasValue) || (lMonitorCliente.CodigoClienteBmf.HasValue))
            {
                lock (MonitorCustodiaMemoria)
                {
                    if (MonitorCustodiaMemoria.ContainsKey(lRequest.CodigoCliente))
                    {
                        gLogger.InfoFormat("Pegou posicao do Cliente[{0}] da memoria", lRequest.CodigoCliente);

                        lRetorno.MonitorCustodia = MonitorCustodiaMemoria[lRequest.CodigoCliente] as MonitorCustodiaInfo;
                    }
                    else
                    {
                        gLogger.Debug("A posicao do clienet[" + lRequest.CodigoCliente + "] não estava na memória");
                        gLogger.Debug("Recalcular posicao [" + lRequest.CodigoCliente + "] novamente");
                        MonitorCustodiaInfo lInfoPosicao = this.CalcularPosicaoCustodia(lRequest.CodigoCliente.Value);
                        lRetorno.MonitorCustodia = lInfoPosicao;
                        MonitorCustodiaMemoria.Add(lInfoPosicao.CodigoClienteBov, lInfoPosicao);
                    }
                }
            }

            return(lRetorno);
        }
Exemple #2
0
        public MonitorCustodiaResponse ObterMonitorCustodiaMemoria(MonitorCustodiaRequest lRequest)
        {
            gLogger.Debug("Solicitação de consulta [ ObterMonitorCustodiaMemoria ] requisitada. Cliente = " + lRequest.CodigoCliente.ToString());

            MonitorCustodiaResponse lRetorno = new MonitorCustodiaResponse();

            try
            {
                gLogger.InfoFormat("Entrou no método-->> ObterMonitorCustodiaMemoria --> Antes do ConsultarDadosClienteMonitorCustodia");

                MonitorCustodiaInfo lMonitorCliente = MonitorCustodiaDB.ConsultarDadosClienteMonitorCustodia(new MonitorCustodiaInfo()
                {
                    CodigoClienteBov = lRequest.CodigoCliente.Value, CodAssessor = lRequest.CodAssessor
                });

                if ((lMonitorCliente.CodigoClienteBov.HasValue) || (lMonitorCliente.CodigoClienteBmf.HasValue))
                {
                    gLogger.InfoFormat("Consulta do Cliente[{0}] ObterMonitorCustodiaMemoria -->> depois do ConsultarDadosClienteMonitorCustodia", lRequest.CodigoCliente.Value);

                    this.AddRemoveClientRunTimerProcessed(lRequest.CodigoCliente.Value);

                    if (MonitorCustodiaMemoria.ContainsKey(lRequest.CodigoCliente.Value))
                    {
                        if (!ClientesMonitor.Contains(lRequest.CodigoCliente.Value))
                        {
                            gLogger.InfoFormat("O Cliente[{0}] Está no MonitorCustodiaMemoria, mas não está sendo monitorado no ClientesMonitor nesse instante", lRequest.CodigoCliente);
                            lRetorno.MonitorCustodia = this.CalcularPosicaoCustodia(lRequest.CodigoCliente.Value);
                            gLogger.Debug("Cliente [" + lRequest.CodigoCliente + "] recalculado novamente");
                        }
                        else
                        {
                            gLogger.InfoFormat("Pegou posicao do Cliente[{0}] da memoria", lRequest.CodigoCliente);
                            lRetorno.MonitorCustodia = MonitorCustodiaMemoria[lRequest.CodigoCliente.Value] as MonitorCustodiaInfo;
                        }
                    }
                    else
                    {
                        gLogger.Debug("A posicao do cliente[" + lRequest.CodigoCliente + "] não estava na memória");
                        lRetorno.MonitorCustodia = this.CalcularPosicaoCustodia(lRequest.CodigoCliente.Value);
                        gLogger.Debug("Cliente [" + lRequest.CodigoCliente + "] recalculado novamente");
                    }

                    MonitorCustodiaMemoria.AddOrUpdate(lRetorno.MonitorCustodia.CodigoClienteBov.Value, lRetorno.MonitorCustodia, (key, oldValue) => lRetorno.MonitorCustodia);

                    gLogger.InfoFormat("**************************************************************************************");
                    gLogger.InfoFormat("*******Total de calculos efetuados na memória [{0}]", MonitorCustodiaMemoria.Count);
                    gLogger.InfoFormat("**************************************************************************************");
                }
            }
            catch (Exception ex)
            {
                gLogger.Error("Erro em ObterMonitorCustodiaMemoria -> ", ex);
            }

            return(lRetorno);
        }
Exemple #3
0
        public MonitorCustodiaInfo CalcularPosicaoCustodia(int idCliente)
        {
            MonitorCustodiaInfo lRetorno = new MonitorCustodiaInfo();

            try
            {
                lRetorno = MonitorCustodiaDB.ConsultarDadosClienteMonitorCustodia(new MonitorCustodiaInfo()
                {
                    CodigoClienteBov = idCliente
                });

                List <MonitorCustodiaInfo.CustodiaPosicao> lPosicaoCustodia = MonitorCustodiaDB.ConsultarCustodiaNormal(new Lib.Mensageria.MonitorCustodiaRequest()
                {
                    CodigoCliente = lRetorno.CodigoClienteBov, CodigoClienteBmf = lRetorno.CodigoClienteBmf
                });
                lRetorno.ListaCustodia = TratarListaCustodia(lPosicaoCustodia);

                List <MonitorCustodiaInfo.CustodiaPosicao> lPosicaoCustodiaSemCarteira = MonitorCustodiaDB.ConsultarCustodiaNormalSemCarteira(new Lib.Mensageria.MonitorCustodiaRequest()
                {
                    CodigoCliente = lRetorno.CodigoClienteBov, CodigoClienteBmf = lRetorno.CodigoClienteBmf
                });
                lRetorno.ListaCustodiaSemCarteira = TratarListaCustodia(lPosicaoCustodiaSemCarteira);

                List <MonitorCustodiaInfo.CustodiaPosicao> lPosicaoCustodiaAberturaBMF = MonitorCustodiaDB.ObterCustodiaAberturaBMF(new Lib.Mensageria.MonitorCustodiaRequest()
                {
                    CodigoCliente = lRetorno.CodigoClienteBov, CodigoClienteBmf = lRetorno.CodigoClienteBmf
                });
                lRetorno.ListaCustodia.AddRange(TratarListaCustodia(lPosicaoCustodiaAberturaBMF));

                List <MonitorCustodiaInfo.CustodiaPosicaoDiaBMF> lPosicaoCustodiaDia = MonitorCustodiaDB.ConsultarCustodiaPosicaoDiaBMF(new MonitorCustodiaInfo()
                {
                    CodigoClienteBmf = lRetorno.CodigoClienteBmf
                });
                lRetorno.ListaPosicaoDiaBMF = TratarListaCustodia(lPosicaoCustodiaDia);

                lRetorno.ListaGarantias = MonitorCustodiaDB.ConsultarFinanceiroGarantiaBMF(new MonitorCustodiaInfo()
                {
                    CodigoClienteBmf = lRetorno.CodigoClienteBmf
                });
                //lRetorno.ListaGarantiasBMFOuro  = MonitorCustodiaDB.ConsultarFinanceiroGarantiaBMFOuro(new MonitorCustodiaInfo()         { CodigoClienteBmf = lRetorno.CodigoClienteBmf });
                lRetorno.ListaGarantiasBMFOuro = new List <MonitorCustodiaInfo.CustodiaGarantiaBMFOuro>();
                lRetorno.ListaGarantiasBovespa = MonitorCustodiaDB.ConsultarFinanceiroGarantiaBovespa(new MonitorCustodiaInfo()
                {
                    CodigoClienteBov = lRetorno.CodigoClienteBov
                });
            }
            catch (Exception ex)
            {
                gLogger.ErrorFormat("Erro calcular posição do cliente [{0}] - StackTrace - {1} -> error {2}", idCliente, ex.StackTrace, ex);
            }

            return(lRetorno);
        }
        private MonitorCustodiaInfo CalcularPosicaoCustodia(int idCliente)
        {
            MonitorCustodiaInfo lRetorno = new MonitorCustodiaInfo();

            try
            {
                //if (idCliente == 31940)
                //{
                lRetorno = MonitorCustodiaDB.ConsultarDadosClienteMonitorCustodia(new MonitorCustodiaInfo()
                {
                    CodigoClienteBov = idCliente
                });
                lRetorno.ListaCustodia = MonitorCustodiaDB.ConsultarCustodiaNormal(new Lib.Mensageria.MonitorCustodiaRequest()
                {
                    CodigoCliente = idCliente
                });
                lRetorno.ListaPosicaoDiaBMF = MonitorCustodiaDB.ConsultarCustodiaPosicaoDiaBMF(new MonitorCustodiaInfo()
                {
                    CodigoClienteBmf = idCliente
                });
                lRetorno.ListaGarantias = MonitorCustodiaDB.ConsultarFinanceiroGarantiaBMF(new MonitorCustodiaInfo()
                {
                    CodigoClienteBmf = idCliente
                });
                //lRetorno.ListaGarantiasBMFOuro = MonitorCustodiaDB.ConsultarFinanceiroGarantiaBMFOuro(new MonitorCustodiaInfo() { CodigoClienteBmf = idCliente });
                lRetorno.ListaGarantiasBMFOuro = new List <MonitorCustodiaInfo.CustodiaGarantiaBMFOuro>();
                lRetorno.ListaGarantiasBovespa = MonitorCustodiaDB.ConsultarFinanceiroGarantiaBovespa(new MonitorCustodiaInfo()
                {
                    CodigoClienteBov = idCliente
                });
                //}
            }
            catch (Exception ex)
            {
                gLogger.ErrorFormat("Erro calcular posição do cliente [{0}] - StackTrace - {1}", idCliente, ex.StackTrace);
            }

            return(lRetorno);
        }