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 button1_Click(object sender, EventArgs e) { var lRequest = new MonitorCustodiaRequest(); lRequest.CodigoCliente = int.Parse(textBox1.Text); //var lRequest = new MonitorCustodiaRequest(); //var lRequest = new MonitorCustodiaRequest(); DateTime time = DateTime.Now; var lResponse = lServico.ObterMonitorCustodiaMemoria(lRequest); if (lResponse != null) { double lSeconds = (DateTime.Now - time).TotalSeconds; MessageBox.Show("Segundos que demorou -> " + lSeconds); } lServico.ClearMonitorCustodiaMemoria(); }
/// <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); }
public static List <MonitorCustodiaInfo.CustodiaPosicao> ConsultarCustodiaNormal(MonitorCustodiaRequest pParametros) { MonitorCustodiaInfo lRetorno = new MonitorCustodiaInfo(); var lAcessaDados = new AcessaDados(); lAcessaDados.ConnectionStringName = gNomeConexaoOracle; using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "PRC_SEL_CUSTODIA_INTRANET2")) { lAcessaDados.AddInParameter(lDbCommand, "IdCliente", DbType.Int32, pParametros.CodigoCliente); lAcessaDados.AddInParameter(lDbCommand, "IdClienteBMF", DbType.Int32, pParametros.CodigoClienteBmf); var lDataTable = lAcessaDados.ExecuteOracleDataTable(lDbCommand); if (null != lDataTable && lDataTable.Rows.Count > 0) { for (int i = 0; i < lDataTable.Rows.Count; i++) { lRetorno.ListaCustodia.Add(new MonitorCustodiaInfo.CustodiaPosicao() { CodigoInstrumento = lDataTable.Rows[i]["COD_NEG"].DBToString(), CodigoCarteira = lDataTable.Rows[i]["COD_CART"].DBToInt32(), DescricaoCarteira = lDataTable.Rows[i]["DESC_CART"].DBToString().Trim(), TipoMercado = lDataTable.Rows[i]["TIPO_MERC"].DBToString(), TipoGrupo = lDataTable.Rows[i]["TIPO_GRUP"].DBToString(), IdCliente = lDataTable.Rows[i]["COD_CLI"].DBToInt32(), QtdeAtual = lDataTable.Rows[i]["QTDE_ATUAL"].DBToDecimal(), QtdeLiquidar = lDataTable.Rows[i]["QTDE_LIQUID"].DBToDecimal(), QtdeDisponivel = lDataTable.Rows[i]["QTDE_DISP"].DBToDecimal(), QtdeAExecVenda = lDataTable.Rows[i]["QTDE_AEXE_VDA"].DBToDecimal(), QtdeAExecCompra = lDataTable.Rows[i]["QTDE_AEXE_CPA"].DBToDecimal(), NomeEmpresa = lDataTable.Rows[i]["NOME_EMP_EMI"].DBToString(), ValorPosicao = lDataTable.Rows[i]["VAL_POSI"].DBToDecimal(), DtVencimento = lDataTable.Rows[i]["DATA_VENC"].DBToDateTime(), QtdeD1 = lDataTable.Rows[i]["QTDE_DA1"].DBToDecimal(), QtdeD2 = lDataTable.Rows[i]["QTDE_DA2"].DBToDecimal(), QtdeD3 = lDataTable.Rows[i]["QTDE_DA3"].DBToDecimal(), CodigoSerie = lDataTable.Rows[i]["COD_SERI"].DBToString(), FatorCotacao = lDataTable.Rows[i]["FAT_COT"].DBToDecimal(), QtdeDATotal = lDataTable.Rows[i]["QTDE_DATOTAL"].DBToDecimal(), }); } } } return(lRetorno.ListaCustodia); }