示例#1
0
 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");
     }
 }
示例#2
0
 private void mostrarMensagem(MensagemRequestBase mensagem)
 {
     lstMensagem.SelectedItem = mensagem.GetType();
     _mensagemRequest         = mensagem;
     comporMensagem(_mensagemRequest);
     ppg.SelectedObject = _mensagemRequest;
     tab.SelectedTab    = tabEnviarMensagem;
 }
示例#3
0
 private void lstMensagem_SelectedIndexChanged(object sender, EventArgs e)
 {
     // Cria instancia da mensagem
     if (lstMensagem.SelectedItem != null)
     {
         _mensagemRequest = (MensagemRequestBase)Activator.CreateInstance((Type)lstMensagem.SelectedItem);
         comporMensagem(_mensagemRequest);
         ppg.SelectedObject = _mensagemRequest;
     }
 }
示例#4
0
        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));
            }
        }
示例#5
0
        private void popupMensagensCriarMensagem_Click(object sender, EventArgs e)
        {
            if (grdMensagens.SelectedRows.Count > 0)
            {
                Mensagem        mensagem   = (Mensagem)grdMensagens.SelectedRows[0].DataBoundItem;
                BinaryFormatter serializer = new BinaryFormatter();

                MemoryStream ms = new MemoryStream();
                serializer.Serialize(ms, mensagem.Request);
                ms.Position = 0;
                MensagemRequestBase mensagemRequest = (MensagemRequestBase)serializer.Deserialize(ms);

                mostrarMensagem(mensagemRequest);
            }
        }
示例#6
0
        protected override void OnLoad(EventArgs e)
        {
            // Realiza cadeia do load
            base.OnLoad(e);

            // Verifica se tem acao
            string acao = Request["acao"];

            if (acao != null)
            {
                // Pega o tipo da mensagem
                Type tipoMensagem = ResolutorTipos.Resolver(Request["TipoMensagem"]);

                // Desserializa a mensagem json para o tipo correto
                MensagemRequestBase mensagemRequest = null;

                // Apenas se descobriu o tipo da mensagem
                if (tipoMensagem != null && Request["Mensagem"] != null)
                {
                    // Desserializa a mensagem
                    mensagemRequest =
                        (MensagemRequestBase)
                        JsonConvert.DeserializeObject(Request["Mensagem"], tipoMensagem);

                    // Se tem sessao, coloca
                    if (Session["CodigoSessao"] != null)
                    {
                        mensagemRequest.CodigoSessao = (string)Session["CodigoSessao"];
                    }
                }

                // Tem objeto para extrair?
                //object objeto = null;
                //string jsonObjeto = Request["mensagem"];
                //string tipoObjeto = Request["tipoMensagem"];
                //if (tipoObjeto != null && jsonObjeto != null)
                //    objeto = JsonConvert.DeserializeObject(jsonObjeto, Type.GetType(tipoObjeto));

                // Pede execução da ação
                object retorno = OnExecutarAcao(acao, mensagemRequest);

                // Serializa a resposta
                Response.Clear();
                Response.Write(JsonConvert.SerializeObject(retorno));
                Response.End();
            }
        }
示例#7
0
        /// <summary>
        /// Consulta sistemas cliente de acordo com o filtro informado
        /// </summary>
        /// <param name="parametros"></param>
        /// <returns></returns>
        public ConsultarSistemasClienteResponse ConsultarSistemasCliente(MensagemRequestBase parametros)
        {
            // Transforma as condições em lista de condições para a pesquisa na persistencia
            List <CondicaoInfo> condicoes = new List <CondicaoInfo>();

            // Retorna a lista de acordo com os filtros
            return
                (new ConsultarSistemasClienteResponse()
            {
                CodigoMensagemRequest = parametros.CodigoMensagem,
                SistemasCliente =
                    _servicoPersistencia.ConsultarObjetos <SistemaClienteInfo>(
                        new ConsultarObjetosRequest <SistemaClienteInfo>()
                {
                    Condicoes = condicoes
                }).Resultado
            });
        }
示例#8
0
 /// <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)
 {
     // Repassa a mensagem
     return(_servicoMensageria.ProcessarMensagem(parametros));
 }
示例#9
0
        /// <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);
        }
示例#10
0
        public string ResponderSalvar()
        {
            string lRetorno     = string.Empty;
            string lObjetoJson  = Request.Params["ObjetoJson"];
            string TipoDeObjeto = Request["TipoDeObjetoPai"];

            TransporteSegurancaItemFilho lDados;

            MensagemRequestBase lRequest;

            MensagemResponseBase lResponse;

            try
            {
                lDados = JsonConvert.DeserializeObject <TransporteSegurancaItemFilho>(lObjetoJson);
                switch (TipoDeObjeto)
                {
                case "Usuario":
                    lRequest = new ReceberUsuarioRequest();
                    ((ReceberUsuarioRequest)lRequest).CodigoUsuario = lDados.ParentId;
                    lRequest.CodigoSessao = this.CodigoSessao;
                    lResponse             = ServicoSeguranca.ReceberUsuario((ReceberUsuarioRequest)lRequest);
                    break;

                case "Grupo":
                    lRequest = new ReceberUsuarioGrupoRequest();
                    ((ReceberUsuarioGrupoRequest)lRequest).CodigoUsuarioGrupo = lDados.ParentId;
                    lRequest.CodigoSessao = this.CodigoSessao;
                    lResponse             = ServicoSeguranca.ReceberUsuarioGrupo((ReceberUsuarioGrupoRequest)lRequest);
                    break;

                default:
                    return(RetornarErroAjax("Não é possível associar um tipo de item que não seja Usuários ou Grupos."));
                }

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    MensagemResponseBase lSalvarResponse;
                    MensagemRequestBase  lSalvarRequest = null;
                    if (lResponse is ReceberUsuarioResponse)
                    {
                        UsuarioInfo lUsuario = ((ReceberUsuarioResponse)lResponse).Usuario;
                        lUsuario.Perfis.Add(lDados.Item);
                        lSalvarRequest = new SalvarUsuarioRequest()
                        {
                            CodigoSessao = this.CodigoSessao,
                            Usuario      = lUsuario
                        };
                        lSalvarResponse = ServicoSeguranca.SalvarUsuario((SalvarUsuarioRequest)lSalvarRequest);
                    }
                    else
                    {
                        UsuarioGrupoInfo lGrupo = ((ReceberUsuarioGrupoResponse)lResponse).UsuarioGrupo;

                        lGrupo.Perfis.Add(lDados.Item);
                        lSalvarRequest = new SalvarUsuarioGrupoRequest()
                        {
                            CodigoSessao = this.CodigoSessao,
                            UsuarioGrupo = lGrupo
                        };
                        lSalvarResponse = ServicoSeguranca.SalvarUsuarioGrupo((SalvarUsuarioGrupoRequest)lSalvarRequest);
                    }

                    if (lSalvarResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        base.RegistrarLogInclusao();
                        return(RetornarSucessoAjax(new TransporteRetornoDeCadastro(lDados.ParentId + "|" + lDados.Item + "|" + TipoDeObjeto), "Dados associados com sucesso"));
                    }
                    else
                    {
                        return(RetornarErroAjax(lSalvarResponse.DescricaoResposta));
                    }
                }
                else
                {
                    return(RetornarErroAjax(lResponse.DescricaoResposta));
                }
            }
            catch (Exception ex)
            {
                return(RetornarErroAjax(ex.Message));
            }
        }