Beispiel #1
0
        private static void CancelarOrdensExperiradas(object state)
        {
            if (DateTime.Now.Hour < HorarioFechamentoBolsa)
            {
                OrdensExpiradasAtualizadas = false;
            }

            if ((DateTime.Now.Hour >= HorarioFechamentoBolsa) && (OrdensExpiradasAtualizadas == false))
            {
                CamadaDeDados _CamadaDeDados = new CamadaDeDados();

                _CamadaDeDados.AbrirConexao();
                List <string> Ordens = _CamadaDeDados.BuscarOrdensValidasParaoDia();

                IServicoOrdens ServicoOrdens = Ativador.Get <IServicoOrdens>();

                for (int i = 0; i <= Ordens.Count - 1; i++)
                {
                    ClienteCancelamentoInfo ClienteCancelamentoInfo = new ClienteCancelamentoInfo()
                    {
                        OrderID = Ordens[i].ToString()
                    };

                    EnviarCancelamentoOrdemRequest request = new EnviarCancelamentoOrdemRequest()
                    {
                        ClienteCancelamentoInfo = ClienteCancelamentoInfo
                    };

                    EnviarCancelamentoOrdemResponse response =
                        ServicoOrdens.CancelarOrdem(request);
                }

                OrdensExpiradasAtualizadas = true;
            }
        }
Beispiel #2
0
        /// <summary>
        ///  Metodo responsável por efetuar o controle de risco e tratamento da solicitação de cancelamento de oferta.
        /// </summary>
        /// <param name="pParametroCancelamentoRequest">Dados do cancelamento da oferta</param>
        /// <returns>EnviarCancelamentoOrdemResponse</returns>
        public ExecutarCancelamentoOrdemResponse CancelarOrdem(EnviarCancelamentoOrdemRequest pParametroCancelamentoRequest)
        {
            ExecutarCancelamentoOrdemResponse _response = new ExecutarCancelamentoOrdemResponse();

            logger.Info("TRACE DA SOLICITACAO DE CANCELAMENTO DE ORDENS:..........:");

            logger.Info("**************************** INICIO **********************************");
            logger.Info("CodigoCliente:......................................:" + DateTime.Now.ToString());
            logger.Info("OrderID:............................................:" + pParametroCancelamentoRequest.ClienteCancelamentoInfo.Account.ToString());
            logger.Info("OrigClOrdID:........................................:" + pParametroCancelamentoRequest.ClienteCancelamentoInfo.OrigClOrdID.ToString());
            logger.Info("PortaControleOrdem:.................................:" + pParametroCancelamentoRequest.ClienteCancelamentoInfo.ChannelID.ToString());
            logger.Info("**************************** FIM ************************************");

            try{
                logger.Info("******* INICIA O PROCESSAMENTO DO CANCELAMENTO ********");

                _response = new ProcessarOrdem().
                            CancelarOrdem(pParametroCancelamentoRequest);

                logger.Info("******* FINALIZA O PROCESSAMENTO DO CANCELAMENTO ******");
            }
            catch (Exception ex) {
                logger.Error("Ocorreu um erro ao invocar o método CancelarOrdem.", ex);
            }

            return(_response);
        }
Beispiel #3
0
        private void CancelarOrdem()
        {
            ClienteCancelamentoInfo info = new ClienteCancelamentoInfo();

            info.OrderID = "30032012030412-36938417";
            EnviarCancelamentoOrdemRequest request = new EnviarCancelamentoOrdemRequest();

            request.ClienteCancelamentoInfo = info;
            EnviarCancelamentoOrdemResponse response = new EnviarCancelamentoOrdemResponse();

            response = new ServicoOrdens().CancelarOrdem(request);
        }
Beispiel #4
0
        private void CancelarOrdem()
        {
            ClienteCancelamentoInfo ClienteCancelamentoInfo = new ClienteCancelamentoInfo()
            {
                OrderID = "2192010184602-3552158"
            };

            EnviarCancelamentoOrdemRequest request = new EnviarCancelamentoOrdemRequest()
            {
                ClienteCancelamentoInfo = ClienteCancelamentoInfo
            };

            EnviarCancelamentoOrdemResponse response =
                new ServicoOrdens().CancelarOrdem(request);

            bool solicitacao = true;
        }
Beispiel #5
0
        private void btnCancelar_Click(object sender, EventArgs e)
        {
            ExecutarCancelamentoOrdemResponse EnviarCancelamentoOrdemResponse = new ExecutarCancelamentoOrdemResponse();
            EnviarCancelamentoOrdemRequest    EnviarCancelamentoOrdemRequest  = new EnviarCancelamentoOrdemRequest();
            ServicoOrdens ServicoOrdens = new ServicoOrdens();

            //IServicoOrdens ServicoOrdens = Ativador.Get<IServicoOrdens>();

            EnviarCancelamentoOrdemRequest.ClienteCancelamentoInfo.OrigClOrdID = txtNumeroControle.Text;
            EnviarCancelamentoOrdemRequest.ClienteCancelamentoInfo.Account     = int.Parse(txtCliente.Text);
            EnviarCancelamentoOrdemRequest.ClienteCancelamentoInfo.ChannelID   = int.Parse(txtChannelID.Text);
            EnviarCancelamentoOrdemRequest.ClienteCancelamentoInfo.Symbol      = txtPapel.Text;


            EnviarCancelamentoOrdemResponse = ServicoOrdens.CancelarOrdem(EnviarCancelamentoOrdemRequest);

            MessageBox.Show(EnviarCancelamentoOrdemResponse.DadosRetorno.Ocorrencias[0].Ocorrencia);
            MessageBox.Show("Ordem cancelada com sucesso.");

            this.CalularLimites();
        }
Beispiel #6
0
        /// <summary>
        /// Exclui as ordens selecionadas
        /// </summary>
        /// <returns>Retorna uma string com mensagem de sucesso ou erro ao excluir as ordens</returns>
        private string ResponderExcluirOrdens()
        {
            string lRetorno = string.Empty;

            try
            {
                string lIds = Request.Form["Ids"];

                string lPortas = Request.Form["Portas"];

                string lMensagem = "";

                List <string> lstIdOrdem = new List <string>();

                //IServicoOrdens lOrdem = Ativador.Get<IServicoOrdens>();

                Gradual.Core.Ordens.Lib.IServicoOrdens lOrdem = Ativador.Get <Gradual.Core.Ordens.Lib.IServicoOrdens>();

                Dictionary <string, string> lCriticas = new Dictionary <string, string>();

                ExecutarCancelamentoOrdemResponse lResponse = new ExecutarCancelamentoOrdemResponse();

                string[] Ordens = lIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                string[] Portas = lPortas.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                OrdemCancelamentoInfo info;

                EnviarCancelamentoOrdemRequest lRequestCancel;

                for (int i = 0; i < Ordens.Length; i++)
                {
                    info = new  OrdemCancelamentoInfo();

                    info.OrigClOrdID = Ordens[i];

                    info.ChannelID = int.Parse(Portas[i]);

                    lRequestCancel = new EnviarCancelamentoOrdemRequest()
                    {
                        ClienteCancelamentoInfo = info
                    };

                    lResponse = lOrdem.CancelarOrdem(lRequestCancel);

                    if (lResponse.DadosRetorno.StatusResposta != StatusRoteamentoEnum.Sucesso)
                    {
                        lCriticas.Add(info.OrderID, lResponse.DadosRetorno.StackTrace);
                    }
                }

                if (lCriticas.Count > 0)
                {
                    foreach (KeyValuePair <string, string> critica in lCriticas)
                    {
                        lMensagem += string.Concat("Ordem: ", critica.Key, "Crítica - ", critica.Value);
                    }

                    lRetorno = RetornarSucessoAjax(lMensagem);
                }
                else
                {
                    lRetorno = RetornarSucessoAjax("Orden(s) cancelada(s) com sucesso");
                    base.RegistrarLogExclusao(string.Concat("Foram EXCLUÍDAS as seguintes ordens: ", lIds));
                }
            }
            catch (Exception ex)
            {
                lRetorno = base.RetornarErroAjax("Erro ao tentar cancelar ordem.", ex);
            }

            return(lRetorno);
        }
Beispiel #7
0
        /// <summary>
        /// Método responsável por enviar um cancelamento de ordens para o roteador cancelar.
        /// </summary>
        /// <param name="pParametroCancelamentoRequest"></param>
        /// <returns></returns>
        public EnviarCancelamentoOrdemResponse CancelarOrdem(EnviarCancelamentoOrdemRequest pParametroCancelamentoRequest)
        {
            logger.Info("Iniciar rotina de cancelamento de ordens");


            DateTime DataInicioExecucao = DateTime.Now;

            logger.Info("Data de inicio de execução:    " + DataInicioExecucao.ToString());

            EnviarCancelamentoOrdemResponse CancelamentoOrderResponse = new EnviarCancelamentoOrdemResponse();

            OrdemFIXResponse <OrdemCancelamentoInfo> OrdemCancelamentoInfo = this.ParsearOrdemCancelamentoCliente(pParametroCancelamentoRequest.ClienteCancelamentoInfo);

            if (OrdemCancelamentoInfo.StatusResposta == CriticaRiscoEnum.Sucesso)
            {
                logger.Info("Solicitação de cancelamento de ordem enviado ");
                logger.Info("Bovespa       : " + OrdemCancelamentoInfo.Objeto.Account.ToString());
                logger.Info("ChannelID     : " + OrdemCancelamentoInfo.Objeto.ChannelID.ToString());
                logger.Info("ClOrdID       : " + OrdemCancelamentoInfo.Objeto.ClOrdID.ToString());
                logger.Info("Exchange      : " + OrdemCancelamentoInfo.Objeto.Exchange.ToString());
                logger.Info("OrderID       : " + OrdemCancelamentoInfo.Objeto.OrderID.ToString());
                logger.Info("OrigClOrdID   : " + OrdemCancelamentoInfo.Objeto.OrigClOrdID.ToString());
                logger.Info("Side          : " + OrdemCancelamentoInfo.Objeto.Side.ToString());
                logger.Info("Symbol        : " + OrdemCancelamentoInfo.Objeto.Symbol.ToString());


                logger.Info("Mensagem parseado com sucesso!");

                logger.Info("Inicializa serviço de roteamento de ordem");
                //Invoca o serviço de roteamento de ordem
                IRoteadorOrdens ServicoRoteador = Ativador.Get <IRoteadorOrdens>();
                logger.Info("Serviço do ativador inicializado com sucesso");

                logger.Info("Calculando digito do cliente");
                OrdemCancelamentoInfo.Objeto.Account = RetornaCodigoCliente(CodigoCorretora, OrdemCancelamentoInfo.Objeto.Account);


                logger.Info("Envia ordem para o roteador");
                // Enviar a ordem para o roteador de ordens e aguarda o retorno.

                ExecutarCancelamentoOrdemResponse RespostaOrdem = ServicoRoteador.CancelarOrdem(
                    new ExecutarCancelamentoOrdemRequest()
                {
                    info = OrdemCancelamentoInfo.Objeto
                });

                if (RespostaOrdem.DadosRetorno.StatusResposta == StatusRoteamentoEnum.Sucesso)
                {
                    logger.Info("Cancelamento enviado com sucesso.");

                    CancelamentoOrderResponse.DescricaoResposta = RespostaOrdem.DadosRetorno.Ocorrencias[0].Ocorrencia;
                    CancelamentoOrderResponse.DataResposta      = DateTime.Now;
                    CancelamentoOrderResponse.StatusResposta    = CriticaRiscoEnum.Sucesso;
                }
                else
                {
                    logger.Info("Erro ao enviar o cancelamento para o Roteador.");

                    CancelamentoOrderResponse.DescricaoResposta = RespostaOrdem.DadosRetorno.Ocorrencias[0].Ocorrencia;
                    CancelamentoOrderResponse.DataResposta      = DateTime.Now;
                    CancelamentoOrderResponse.StatusResposta    = CriticaRiscoEnum.ErroNegocio;
                }
            }
            else
            {
                CancelamentoOrderResponse.DescricaoResposta = OrdemCancelamentoInfo.CriticaInfo[0].Critica.ToString();
                CancelamentoOrderResponse.CriticaInfo       = OrdemCancelamentoInfo.CriticaInfo;
                CancelamentoOrderResponse.DataResposta      = DateTime.Now;
                CancelamentoOrderResponse.StatusResposta    = CriticaRiscoEnum.Sucesso;
            }

            TimeSpan datafinal = (DateTime.Now - DataInicioExecucao);

            logger.Info("Tempo total de execução     :" + datafinal.ToString());

            return(CancelamentoOrderResponse);
        }