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)); }
public Models.Curso Obter(string curso) { DAL.CursoDAL cursoDal = new DAL.CursoDAL(); return(cursoDal.ObterCurso(curso)); }