public async Task <MensagemDeSaida> Transforma(MensagemDeEntrada mensagemDeEntrada)
        {
            var regra = await regrasRepository.ObtemRegraPeloNome(mensagemDeEntrada.Regra);

            XmlDocument mensagemXml;

            switch (regra.TipoDeFormato)
            {
            case TipoDeFormato.Xml:
                mensagemXml = new XmlDocument();

                mensagemXml.LoadXml(mensagemDeEntrada.Conteudo);

                break;

            case TipoDeFormato.JSON:

                mensagemXml = JsonConvert.DeserializeXmlNode(mensagemDeEntrada.Conteudo);

                break;

            default:

                throw new InvalidCastException();
            }

            var mensagem = await transformacaoDeMensagensXmlService.Transforma(mensagemXml, regra);

            var mensagemDeSaida = new MensagemDeSaida
            {
                Result = mensagem
            };

            return(mensagemDeSaida);
        }
        public async Task <ActionResult <MensagemDeSaida> > Post([FromHeader] string regra, [FromBody] string conteudo)
        {
            var mensagemDeEntrada = new MensagemDeEntrada
            {
                Regra    = regra,
                Conteudo = conteudo
            };

            var mensagem = await transformacaoDeMensagens.Transforma(mensagemDeEntrada);

            return(Ok(mensagem));
        }