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);
        }
Beispiel #2
0
        public MonitorCustodiaInfo GetPosicaoCustodiaCliente(int CodigoBovespa)
        {
            MonitorCustodiaInfo lRetorno = new MonitorCustodiaInfo();

            try
            {
                MonitorCustodiaRequest lRequest = new MonitorCustodiaRequest();

                MonitorCustodiaResponse lResponse = new MonitorCustodiaResponse();

                lRequest.CodigoCliente = CodigoBovespa;

                lResponse = gServicoCustodia.ObterMonitorCustodiaMemoria(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    lRetorno = lResponse.MonitorCustodia;
                }
            }
            catch (Exception ex)
            {
                gLogger.Error(ex);
            }

            return(lRetorno);
        }
Beispiel #3
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);
        }
Beispiel #4
0
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                MonitorCustodiaResponse lResponse = lServico.ObterMonitorCustodiaMemoria(new Lib.Mensageria.MonitorCustodiaRequest()
                {
                    CodigoCliente = int.Parse(txtCliente.Text)
                });

                if (lResponse.MonitorCustodia != null)
                {
                    MessageBox.Show("Retornou dados", "Retornou dados", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #5
0
        /// <summary>
        /// Método que busca os valores de conta-corrente no serviço de contacorrente
        /// </summary>
        /// <returns>Retorna uma string json com os valores de contacorrente do cliente selecionado</returns>
        public string ResponderBuscarLimites()
        {
            string lRetorno = string.Empty;

            int lCodigoCliente = RequestCodigoCliente.Value;

            try
            {
                IServicoContaCorrente servicoCC = this.InstanciarServico <IServicoContaCorrente>();

                decimal lTotalSaldoCC = 0M;

                var lResponseSaldo = servicoCC.ObterSaldoContaCorrente(new SaldoContaCorrenteRequest()
                {
                    IdCliente = lCodigoCliente
                });

                if (lResponseSaldo != null && lResponseSaldo.StatusResposta == OMS.ContaCorrente.Lib.Enum.CriticaMensagemEnum.OK)
                {
                    lTotalSaldoCC = lResponseSaldo.Objeto.SaldoD0;
                }

                ///Buscanso valor de fundos
                List <Transporte_PosicaoCotista> ListaPosicao = base.PosicaoFundosSumarizado(lCodigoCliente, CpfCnpj);

                decimal lTotalFundos = 0M;

                foreach (var lFundo in ListaPosicao)
                {
                    lTotalFundos += decimal.Parse(lFundo.ValorLiquido);
                }


                var lRequestCustodia = new MonitorCustodiaRequest();

                var lResponseCustodia = new MonitorCustodiaResponse();

                var gServicoCustodia = Ativador.Get <IServicoMonitorCustodia>();

                lRequestCustodia.CodigoCliente = lCodigoCliente;

                lResponseCustodia = gServicoCustodia.ObterMonitorCustodiaMemoria(lRequestCustodia);

                var lRetornoCustodia = new List <TransporteCustodiaInfo>();

                IEnumerable <MonitorCustodiaInfo.CustodiaPosicao> Lista = from a in lResponseCustodia.MonitorCustodia.ListaCustodia orderby a.Resultado descending select a;

                lRetornoCustodia = TransporteCustodiaInfo.TraduzirCustodiaInfo(Lista.ToList());

                var lListaCustodia = lRetornoCustodia;

                decimal lSomatoriaCustodia = 0M;

                IServicoCotacao lServicoCotacao = Ativador.Get <IServicoCotacao>();

                foreach (TransporteCustodiaInfo lCus in lListaCustodia)
                {
                    var lCotacao = lServicoCotacao.ReceberTickerCotacao(lCus.CodigoNegocio);

                    var lMsgCotacao = new Gradual.Intranet.Www.App_Codigo.TransporteJson.TransporteMensagemDeNegocio(lCotacao);

                    lSomatoriaCustodia += (Convert.ToDecimal(lCus.QtdAtual) * Convert.ToDecimal(lMsgCotacao.Preco));
                }

                decimal lTotalLimiteSomado = (lTotalFundos + lSomatoriaCustodia + lTotalSaldoCC);

                var lObjetoRetorno = new ClienteCallBackLimite(lCodigoCliente, RequestCodigoIPOCliente, lTotalLimiteSomado);

                lRetorno = RetornarSucessoAjax(lObjetoRetorno, "Limite do cliente " + lCodigoCliente + " atualizado com sucesso");
            }
            catch (Exception ex)
            {
                lRetorno = RetornarErroAjax("Erro ao Buscar dados de limites", ex);
            }

            return(lRetorno);
        }