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