public ActionResult GetWebhookResponse([FromBody] System.Text.Json.JsonElement dados)
        {
            if (!Autorizado(Request.Headers))
            {
                return(StatusCode(401));
            }

            WebhookRequest request =
                _jsonParser.Parse <WebhookRequest>(dados.GetRawText());

            WebhookResponse response = new WebhookResponse();


            if (request != null)
            {
                string action     = request.QueryResult.Action;
                var    parameters = request.QueryResult.Parameters;

                if (action == "ActionTesteWH")
                {
                    response.FulfillmentText = "testando o webhook 2";
                }
                else if (action == "ActionCursoOferta")
                {
                    DAL.CursoDAL dal = new DAL.CursoDAL();

                    if (parameters != null &&
                        parameters.Fields.ContainsKey("Cursos"))
                    {
                        var cursos = parameters.Fields["Cursos"];

                        if (cursos != null && cursos.ListValue.Values.Count > 0)
                        {
                            string curso = cursos.ListValue.Values[0].StringValue;
                            if (dal.ObterCurso(curso) != null)
                            {
                                response.FulfillmentText = "Sim, temos " + curso + ".";
                            }
                        }
                        else
                        {
                            response.FulfillmentText = "Não temos, mas temos esses: " + dal.ObterTodosFormatoTexto() + ".";
                        }
                    }
                }
                else if (action == "ActionCursoValor")
                {
                    var contexto = request.QueryResult.OutputContexts;

                    if (contexto[0].ContextName.ContextId == "ctxcurso")
                    {
                        if (contexto[0].Parameters != null &&
                            contexto[0].Parameters.Fields.ContainsKey("Cursos"))
                        {
                            var          cursos = contexto[0].Parameters.Fields["Cursos"];
                            string       curso  = cursos.ListValue.Values[0].StringValue;
                            DAL.CursoDAL dal    = new DAL.CursoDAL();

                            Models.Curso c = dal.ObterCurso(curso);
                            if (c != null)
                            {
                                response.FulfillmentText =
                                    "A mensalidade para " + c.Nome + " é " + c.Preco + ".";
                            }
                        }
                    }
                }

                else if (action == "ActionTesteWHPayload")
                {
                    var contexto = request.QueryResult.OutputContexts;

                    var payload = "{\"list\": {\"replacementKey\": \"@contexto\",\"invokeEvent\": true,\"afterDialog\": true,\"itemsName\": [\"Sim\",\"Não\"],\"itemsEventName\": [\"QueroInscrever\",\"NaoQueroInscrever\"]}}";


                    response = new WebhookResponse()
                    {
                        FulfillmentText = "Teste Payload no WH com sucesso...",
                        Payload         = Google.Protobuf.WellKnownTypes.Struct.Parser.ParseJson(payload)
                    };
                }
            }

            return(Ok(response));
        }