Ejemplo n.º 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;
            }
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
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;
        }
Ejemplo n.º 4
0
        private OrdemFIXResponse <OrdemCancelamentoInfo> ParsearOrdemCancelamentoCliente(ClienteCancelamentoInfo pParametro)
        {
            OrdemFIXResponse <OrdemCancelamentoInfo> Response =
                new OrdemFIXResponse <OrdemCancelamentoInfo>();


            try
            {
                OrdemInfo OrdemInfo = new PersistenciaOrdens().SelecionarOrdemCliente(pParametro.OrderID);

                OrdemCancelamentoInfo CancelamentoInfo =
                    new OrdemCancelamentoInfo();

                CancelamentoInfo.ClOrdID     = CtrlNumber;
                CancelamentoInfo.OrigClOrdID = OrdemInfo.ClOrdID;
                CancelamentoInfo.ChannelID   = OrdemInfo.ChannelID;
                CancelamentoInfo.Account     = OrdemInfo.Account;
                CancelamentoInfo.OrderID     = OrdemInfo.ExchangeNumberID;
                CancelamentoInfo.OrderQty    = OrdemInfo.OrderQty;
                CancelamentoInfo.Side        = OrdemInfo.Side;
                CancelamentoInfo.Symbol      = OrdemInfo.Symbol;

                if ((OrdemInfo.OrdStatus != OrdemStatusEnum.NOVA) || (OrdemInfo.OrdStatus == OrdemStatusEnum.SUBSTITUIDA) ||
                    (OrdemInfo.OrdStatus == OrdemStatusEnum.PARCIALMENTEEXECUTADA))
                {
                    Lib.Info.PipeLineCriticaInfo info = new Lib.Info.PipeLineCriticaInfo();

                    info.Critica         = "Não é possível cancelar uma oferta em processamento. Esta oferta pode estar cancelada ou cancelando / executada ou executando. ";
                    info.CriticaTipo     = CriticaRiscoEnum.ErroNegocio;
                    info.DataHoraCritica = DateTime.Now;

                    Response.CriticaInfo = new List <Lib.Info.PipeLineCriticaInfo>();

                    Response.CriticaInfo.Add(info);
                    Response.StatusResposta    = CriticaRiscoEnum.ErroNegocio;
                    Response.DataResposta      = DateTime.Now;
                    Response.DescricaoResposta = "O Sistema de risco encontrou <" + Response.CriticaInfo.Count.ToString() + "> item(s) a serem verificados";

                    return(Response);
                }



                if (OrdemInfo.Symbol.Substring(OrdemInfo.Symbol.Length - 1, 1) == "F")
                {
                    OrdemInfo.Symbol = OrdemInfo.Symbol.Remove(OrdemInfo.Symbol.Length - 1);
                }

                // Defini o Exchange pelo cadastro de papeis
                CadastroPapeisResponse <CadastroPapelInfo> CadastroPapeis = new ServicoCadastroPapeis().ObterInformacoesIntrumento(
                    new CadastroPapeisRequest()
                {
                    Instrumento = OrdemInfo.Symbol
                });

                if (CadastroPapeis.Objeto == null)
                {
                    Lib.Info.PipeLineCriticaInfo info = new Lib.Info.PipeLineCriticaInfo();

                    info.Critica         = "Instrumento não encontrado";
                    info.CriticaTipo     = CriticaRiscoEnum.ErroNegocio;
                    info.DataHoraCritica = DateTime.Now;

                    Response.CriticaInfo = new List <Lib.Info.PipeLineCriticaInfo>();

                    Response.CriticaInfo.Add(info);
                    Response.StatusResposta    = CriticaRiscoEnum.ErroNegocio;
                    Response.DataResposta      = DateTime.Now;
                    Response.DescricaoResposta = "O Sistema de risco encontrou <" + Response.CriticaInfo.Count.ToString() + "> item(s) a serem verificados";

                    return(Response);
                }

                if (CadastroPapeis.Objeto.TipoMercado == OMS.CadastroPapeis.Lib.Enum.TipoMercadoEnum.FUTURO)
                {
                    CancelamentoInfo.Exchange   = "BMF";
                    CancelamentoInfo.SecurityID = new PersistenciaCadastroAtivos().ObterSecurityList(OrdemInfo.Symbol);
                }
                else
                {
                    CancelamentoInfo.Exchange = "BOVESPA";
                }


                Response.Objeto = CancelamentoInfo;

                Response.StatusResposta    = CriticaRiscoEnum.Sucesso;
                Response.DataResposta      = DateTime.Now;
                Response.DescricaoResposta = "Ordem parseado com sucesso";
            }
            catch (Exception ex)
            {
                Lib.Info.PipeLineCriticaInfo info = new Lib.Info.PipeLineCriticaInfo();

                info.Critica         = ex.Message;
                info.CriticaTipo     = CriticaRiscoEnum.ErroNegocio;
                info.DataHoraCritica = DateTime.Now;

                Response.CriticaInfo = new List <Lib.Info.PipeLineCriticaInfo>();

                Response.CriticaInfo.Add(info);

                Response.StatusResposta    = CriticaRiscoEnum.Exception;
                Response.DataResposta      = DateTime.Now;
                Response.DescricaoResposta = "Ocorreu um erro ao parsear a mensagem";
            }

            return(Response);
        }
Ejemplo n.º 5
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>();

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

                EnviarCancelamentoOrdemResponse lResponse = new EnviarCancelamentoOrdemResponse();

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

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

                ClienteCancelamentoInfo info;

                EnviarCancelamentoOrdemRequest lRequestCancel;

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

                    info.OrderID = Ordens[i];

                    info.PortaControleOrdem = Portas[i];

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

                    lResponse = lOrdem.CancelarOrdem(lRequestCancel);

                    if (lResponse.StatusResposta != OMS.Ordens.Lib.Enum.CriticaRiscoEnum.Sucesso)
                    {
                        lCriticas.Add(info.OrderID, lResponse.DescricaoResposta);
                    }
                }

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