private void comporMensagem(MensagemRequestBase mensagem) { if (mensagem.GetType() == typeof(ExecutarOrdemRequest)) { ExecutarOrdemRequest msg = (ExecutarOrdemRequest)mensagem; msg.ClOrdID = _servicoOrdens.GerarCodigoMensagem("ORD"); msg.CodigoCliente = "123"; msg.DataReferencia = DateTime.Now; msg.CodigoBolsa = "BMF"; msg.TransactTime = DateTime.Now.Date; msg.Price = 100; msg.OrderQty = 10; } else if (mensagem.GetType() == typeof(CancelarOrdemRequest)) { CancelarOrdemRequest msg = (CancelarOrdemRequest)mensagem; msg.ClOrdID = _servicoOrdens.GerarCodigoMensagem("CNC"); msg.CodigoBolsa = "BMF"; msg.CodigoCliente = "123"; } else { mensagem.CodigoMensagem = _servicoOrdens.GerarCodigoMensagem("MSG"); } }
private void mostrarMensagem(MensagemRequestBase mensagem) { lstMensagem.SelectedItem = mensagem.GetType(); _mensagemRequest = mensagem; comporMensagem(_mensagemRequest); ppg.SelectedObject = _mensagemRequest; tab.SelectedTab = tabEnviarMensagem; }
public MensagemResponseBase ProcessarMensagem(MensagemRequestBase parametros) { Type lTipoParametro = parametros.GetType(); if (lTipoParametro == typeof(AutenticarUsuarioRequest)) { AutenticarUsuarioResponse lResposta = new AutenticarUsuarioResponse(); lResposta.StatusResposta = MensagemResponseStatusEnum.OK; lResposta.Sessao = new SessaoInfo(); lResposta.Sessao.CodigoSessao = Guid.NewGuid().ToString(); return(lResposta); } else if (lTipoParametro == typeof(ValidarItemSegurancaRequest)) { ValidarItemSegurancaResponse lResposta = new ValidarItemSegurancaResponse(); lResposta.StatusResposta = MensagemResponseStatusEnum.OK; lResposta.ItensSeguranca = ((ValidarItemSegurancaRequest)parametros).ItensSeguranca; foreach (ItemSegurancaInfo lItem in lResposta.ItensSeguranca) { lItem.Valido = true; } return(lResposta); } else if (lTipoParametro == typeof(ListarUsuariosRequest)) { ListarUsuariosResponse lResposta = new ListarUsuariosResponse(); lResposta.Usuarios = new List <UsuarioInfo>(); lResposta.Usuarios.Add(new UsuarioInfo() { Nome = "Teste", Email = "*****@*****.**", CodigoUsuario = "1" }); return(lResposta); } else { throw new NotImplementedException(string.Format("Mock não implementado para [{0}]", lTipoParametro)); } }
/// <summary> /// Processa a mensagem solicitada. /// Faz o roteamento da mensagem para o devido serviço /// </summary> /// <param name="parametros"></param> /// <returns></returns> public MensagemResponseBase ProcessarMensagem(MensagemRequestBase parametros) { // Prepara resposta MensagemResponseBase resposta = null; // Bloco de controle try { // Passa a mensagem pela validação ValidarMensagemResponse respostaValidacao = _servicoValidacao.ValidarMensagem( new ValidarMensagemRequest() { CodigoSessao = parametros.CodigoSessao, Mensagem = parametros }); // Verifica o retorno da validação if (respostaValidacao.ContextoValidacao.MensagemValida) { // Tipo da mensagem Type tipoMensagem = parametros.GetType(); // Acha o método que processa este tipo de mensagem MethodInfo metodo = _tiposConhecidos[tipoMensagem]; // Tipo do servico Type tipoServico = metodo.ReflectedType; // Pega instancia do servico object servico = Ativador.Get(tipoServico); // Executa resposta = (MensagemResponseBase)metodo.Invoke(servico, new object[] { parametros }); // Faz o log da mensagem logger.Info("ServicoMensageria.ProcessarMensagem: " + Serializador.TransformarEmString(parametros)); } else { // Cria resposta resposta = criarResponsePadrao(parametros.GetType()); // Preenche a resposta resposta.CodigoMensagemRequest = parametros.CodigoMensagem; resposta.Criticas = respostaValidacao.Criticas; resposta.StatusResposta = MensagemResponseStatusEnum.ErroValidacao; resposta.DescricaoResposta = constDescricaoErroValidacao; // Faz o log logger.Error("ServicoMensageria.ProcessarMensagem (Erro de Validação): " + Serializador.TransformarEmString(respostaValidacao)); } } catch (Exception ex) { // Faz o log logger.Error("Erro ao processar mensagem: " + parametros.CodigoMensagem, ex); // Cria resposta resposta = criarResponsePadrao(parametros.GetType()); // Preenche a resposta resposta.CodigoMensagemRequest = parametros.CodigoMensagem; resposta.StatusResposta = MensagemResponseStatusEnum.ErroPrograma; resposta.DescricaoResposta = ex.ToString(); } // Retorna return(resposta); }