/// <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); }
/// <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 lAccounts = Request.Form["Accounts"]; string lSymbols = Request.Form["Symbols"]; 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); string[] Accounts = lAccounts.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string[] Symbols = lSymbols.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); //OrdemCancelamentoInfo info; //EnviarCancelamentoOrdemRequest lRequestCancel; for (int i = 0; i < Ordens.Length; i++) { IFixServerLowLatencyAdm fixAdm = Ativador.Get <IFixServerLowLatencyAdm>(); OrderCancelingRequest req = new OrderCancelingRequest(); req.Account = Accounts[i]; req.OrigClOrdID = Ordens[i]; req.ChannelID = Portas[i]; req.Symbol = Symbols[i]; OrderCancelingResponse resp = fixAdm.CancelOrder(req); /* * info = new OrdemCancelamentoInfo(); * * info.OrigClOrdID = Ordens[i]; * * info.ChannelID = int.Parse( Portas[i]); * * lRequestCancel = new EnviarCancelamentoOrdemRequest() * { * ClienteCancelamentoInfo = info * }; * * lResponse = lOrdem.CancelarOrdem(lRequestCancel); */ if (resp.StatusResponse == 0 && !string.IsNullOrEmpty(resp.DescricaoErro)) { lCriticas.Add(req.OrigClOrdID, resp.DescricaoErro); } } 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); }