コード例 #1
0
        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);
        }
コード例 #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);
        }
コード例 #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);
        }
コード例 #4
0
ファイル: Form1.cs プロジェクト: radtek/Gradual
        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();
        }
コード例 #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);
        }
コード例 #6
0
        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);
        }