コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="pAccount"></param>
        /// <param name="pCodBmf"></param>
        /// <param name="pDataDe"></param>
        /// <param name="pDataAte"></param>
        /// <param name="pChannelId"></param>
        /// <param name="pSymbol"></param>
        /// <param name="pOrderStatusId"></param>
        /// <param name="pCodigoAssessor"></param>
        /// <returns></returns>
        public BuscarOrdensResponse BuscarOrdens(BuscarOrdensRequest pRequest)
        {
            AcessaDados lAcessaDados = new AcessaDados();

            lAcessaDados.ConnectionStringName = ClienteDbLib.gNomeConexaoRisco;

            BuscarOrdensResponse lRetorno = new BuscarOrdensResponse();

            lRetorno.Ordens = new List <OrdemInfo>();

            List <OrdemInfo> lResponseOrdens = new List <OrdemInfo>();

            using (DbCommand lDbCommand = lAcessaDados.CreateCommand(System.Data.CommandType.StoredProcedure, "prc_buscar_ordens"))
            {
                lAcessaDados.AddInParameter(lDbCommand, "@Account", DbType.Int32, pRequest.ContaDoCliente);
                lAcessaDados.AddInParameter(lDbCommand, "@CodBmf", DbType.Int32, pRequest.CodigoBmfDoCliente);
                lAcessaDados.AddInParameter(lDbCommand, "@DataDe", DbType.DateTime, pRequest.DataDe);
                lAcessaDados.AddInParameter(lDbCommand, "@DataAte", DbType.DateTime, pRequest.DataAte);
                lAcessaDados.AddInParameter(lDbCommand, "@ChannelId", DbType.Int32, pRequest.Canal);
                lAcessaDados.AddInParameter(lDbCommand, "@Symbol", DbType.AnsiString, pRequest.Instrumento);
                lAcessaDados.AddInParameter(lDbCommand, "@OrdStatusId", DbType.Int32, pRequest.Status == null ? new Nullable <int>() : (int)pRequest.Status);
                lAcessaDados.AddInParameter(lDbCommand, "@CodigoAssessor", DbType.Int32, pRequest.CodigoAssessor);
                //lAcessaDados.AddInParameter(lDbCommand, "@id_sistema", DbType.Int32, pRequest.IdSistemaOrigem);

                DataTable lDataTable = lAcessaDados.ExecuteDbDataTable(lDbCommand);

                lResponseOrdens = PreencherOrdensInfoDaVwOrderDetails(lDataTable);

                this.BuscarAssessoresFiltro(pRequest.CodigoAssessor, ref lResponseOrdens);

                lRetorno.Ordens = lResponseOrdens;
            }
            return(lRetorno);
        }
コード例 #2
0
        private static void BuscarOrdens(string pInput)
        {
            string[] lInputs = pInput.Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

            int      lConta = -1;
            DateTime lDataDe = DateTime.MinValue, lDataAte = DateTime.MinValue;

            string lParamA = null, lParamB = null, lParamC = null;

            CultureInfo lProv = new CultureInfo("pt-BR");

            if (lInputs.Length == 2)
            {
                lParamA = lInputs[1];
            }

            if (lInputs.Length == 3)
            {
                //passador dois parametros, vê se o primeiro é int
                if (int.TryParse(lInputs[1], out lConta))
                {
                    lParamA = lInputs[1];
                    lParamB = lInputs[2];
                }
                else
                {
                    lParamA = null;
                    lParamB = lInputs[1];
                    lParamC = lInputs[2];
                }
            }

            if (!string.IsNullOrEmpty(lParamA))
            {
                if (!int.TryParse(lParamA, out lConta))
                {
                    lConta = -1;
                }
            }

            if (!string.IsNullOrEmpty(lParamB))
            {
                if (!DateTime.TryParseExact(lParamB, "dd/MM/yyyy", lProv, DateTimeStyles.None, out lDataDe))
                {
                    if (!DateTime.TryParseExact(lParamB, "dd/MM", lProv, DateTimeStyles.None, out lDataDe))
                    {
                        if (!DateTime.TryParseExact(lParamB, "dd/MM/yyyy HH:mm", lProv, DateTimeStyles.None, out lDataDe))
                        {
                            if (!DateTime.TryParseExact(lParamB, "dd/MM/yyyy HH:mm:ss", lProv, DateTimeStyles.None, out lDataDe))
                            {
                                //não entendeu a data...
                            }
                        }
                    }
                }
            }

            if (string.IsNullOrEmpty(lParamC))
            {
                if (lDataDe != DateTime.MinValue)
                {
                    lDataAte = DateTime.Now;
                }
            }
            else
            {
                if (!DateTime.TryParseExact(lParamC, "dd/MM/yyyy", lProv, DateTimeStyles.None, out lDataAte))
                {
                    if (!DateTime.TryParseExact(lParamC, "dd/MM", lProv, DateTimeStyles.None, out lDataAte))
                    {
                        if (!DateTime.TryParseExact(lParamC, "dd/MM/yyyy HH:mm", lProv, DateTimeStyles.None, out lDataAte))
                        {
                            if (!DateTime.TryParseExact(lParamC, "dd/MM/yyyy HH:mm:ss", lProv, DateTimeStyles.None, out lDataAte))
                            {
                                //não entendeu a data...
                            }
                        }
                    }
                }
            }


            BuscarOrdensRequest  lRequest = new BuscarOrdensRequest();
            BuscarOrdensResponse lResponse;

            ServicoAcompanhamentoOrdensClient lClient = new ServicoAcompanhamentoOrdensClient();

            if (lConta > 0)
            {
                lRequest.ContaDoCliente = lConta;
            }

            if (lDataDe != DateTime.MinValue)
            {
                lRequest.DataDe  = lDataDe;
                lRequest.DataAte = lDataAte;
            }
            else
            {
                lRequest.DataDe  = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day - 1, 0, 0, 0);
                lRequest.DataAte = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day - 1, 23, 59, 59);
            }

            Console.WriteLine("Enviando busca: conta [{0}] De [{1}] Até [{2}]...", lRequest.ContaDoCliente, lRequest.DataDe, lRequest.DataAte);

            lResponse = lClient.BuscarOrdens(lRequest);

            if (lResponse.StatusResposta == Library.MensagemResponseStatusEnum.OK)
            {
                ConsoleWriteOrdens(lResponse.Ordens);
            }
            else
            {
                Console.WriteLine("Erro na consulta: [{0}] [{1}]", lResponse.StatusResposta, lResponse.DescricaoResposta);
            }
        }
コード例 #3
0
        /// <summary>
        /// Busca ordens inseridas no sinacor
        /// </summary>
        /// <param name="pRequest"></param>
        /// <returns></returns>
        public BuscarOrdensResponse BuscarOrdensSinacor(BuscarOrdensRequest pRequest)
        {
            BuscarOrdensResponse lReturn = new BuscarOrdensResponse();

            OrdemInfo lOrdem = new OrdemInfo();

            AcessaDados lAcessaDados = new AcessaDados();

            lAcessaDados.ConnectionStringName = ClienteDbLib.gNomeConexaoSinacorTrade;

            ///PRC_ACOMP_ORDENS_BMF_LST
            //PRC_ACOMPANHAMENTO_ORDENS_LST
            //string lProc = (pRequest.Canal == 0) ? "PRC_ACOMP_ORDENS_BMF_LST" : "PRC_ACOMPANHAMENTO_ORDENS_LST";
            string lProc = (pRequest.Canal == 0) ? "PRC_ACOMP_ORDENS_BMF_LST" : "PRC_ACOMPA_ORDENS_LST";

            using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, lProc))
            {
                lAcessaDados.AddInParameter(lDbCommand, "pDtDe", DbType.Date, pRequest.DataDe);
                lAcessaDados.AddInParameter(lDbCommand, "pDtAte", DbType.Date, pRequest.DataAte);
                lAcessaDados.AddInParameter(lDbCommand, "pPapel", DbType.AnsiString, pRequest.Instrumento);
                lAcessaDados.AddInParameter(lDbCommand, "pCodCliente", DbType.Int32, pRequest.ContaDoCliente);
                lAcessaDados.AddInParameter(lDbCommand, "pPaginaCorrente", DbType.Int32, pRequest.PaginaCorrente);
                lAcessaDados.AddInParameter(lDbCommand, "pQtdRegs", DbType.Int32, pRequest.QtdeLimiteRegistros);
                lAcessaDados.AddInParameter(lDbCommand, "pCodAssessor", DbType.Int32, pRequest.CodigoAssessor);
                lAcessaDados.AddInParameter(lDbCommand, "pStatusOrdem", DbType.Int32, pRequest.Status == null ? new Nullable <int>() : (int)pRequest.Status);
                lAcessaDados.AddInParameter(lDbCommand, "pStPortaTryd", DbType.String, "TRYD".Equals(pRequest.Origem) ? pRequest.Origem : null);

                lAcessaDados.AddOutParameter(lDbCommand, "pTotalRegistros", DbType.Int32, 12);

                DataTable lDados = lAcessaDados.ExecuteOracleDataTable(lDbCommand);

                lReturn.Ordens = new List <OrdemInfo>();

                lReturn.TotalItens = lDados.Rows.Count;

                foreach (DataRow lRow in lDados.Rows)
                {
                    lOrdem = new OrdemInfo();

                    lOrdem.IdOrdem            = Convert.ToInt32(lRow["OrderId"]);
                    lOrdem.Account            = lRow["CD_CLIENTE"].DBToInt32();
                    lOrdem.ChannelID          = lRow["ChannelId"].DBToInt32();
                    lOrdem.ExpireDate         = lRow["ExpireDate"].DBToDateTime();
                    lOrdem.OrderQty           = lRow["OrderQty"].DBToInt32();
                    lOrdem.OrderQtyRemmaining = lRow["OrderQtyRemaining"].DBToInt32();
                    lOrdem.OrdStatus          = (OrdemStatusEnum)lRow["OrdStatusId"].DBToInt32();
                    lOrdem.ClOrdID            = lRow["OrderId"].ToString();
                    lOrdem.OrdType            = (OrdemTipoEnum)50;
                    lOrdem.RegisterTime       = DateTime.ParseExact(lRow["RegisterTime"].ToString(), "dd/MM/yyyy HH:mm:ss", CultureInfo.CurrentCulture);
                    lOrdem.Side   = (OrdemDirecaoEnum)lRow["Side"].DBToInt32();
                    lOrdem.Symbol = lRow["SYMBOL"].DBToString();

                    if (lRow["Price"] != DBNull.Value)
                    {
                        lOrdem.Price = Convert.ToDouble(lRow["Price"]);
                    }

                    lOrdem.Acompanhamentos = new List <AcompanhamentoOrdemInfo>();

                    lReturn.Ordens.Add(lOrdem);
                }

                List <OrdemInfo> lTempOrdens = lReturn.Ordens;

                this.BuscarAssessoresFiltro(pRequest.CodigoAssessor, ref lTempOrdens);

                lReturn.Ordens = lTempOrdens;
            }

            return(lReturn);
        }