public async System.Threading.Tasks.Task <SkillResponse> ExecuteIntentAsync() { SkillResponse response = await PermissionValidator.ValidatorAsync(_input, _locale); if (response != null) { return(response); } string result = await HttpSenderApi.Call("open-banking/v1/accounts/" + _acc + "/transactions", _token); ConsultaExtratoResponseDTO consultaExtratoResponse = JsonConvert.DeserializeObject <ConsultaExtratoResponseDTO>(result); string[] arguments = MappingDtoResponseToEchoMessage(consultaExtratoResponse); var consultaExtrato = await _locale.Get(LanguageKeys.ConsultaExtrato, arguments); return(ResponseBuilder.Ask(consultaExtrato, null, _input.Session)); }
public async System.Threading.Tasks.Task <SkillResponse> ExecuteIntentAsync() { SkillResponse response = await PermissionValidator.ValidatorAsync(_input, _locale); if (response != null) { return(response); } ConsultarTransferenciaRequestDTO consultarTransferenciaRequestDTO = MappingIntentDtoRequest(_input); var jsonData = JsonConvert.SerializeObject(consultarTransferenciaRequestDTO); string result = await HttpSenderApi.Call("accounts/v1/accounts/" + _acc + "/transfers", _token, jsonData); ConsultarTransferenciaResponseDTO consultaTransferenciaResponse = JsonConvert.DeserializeObject <ConsultarTransferenciaResponseDTO>(result); var consultaExtrato = await _locale.Get(LanguageKeys.Transferencia, null); return(ResponseBuilder.Ask(consultaExtrato, null, _input.Session)); }
public override async Task <ActionResult <IActionResult> > HandleAsync(SkillRequest input) { /// <summary> /// Bloco de segurança para verificando e validar o request enviado pela Alexa, /// identificando possiveis fraudes. /// </summary> var req = HttpContext.Request; var isValid = await input.ValidateRequestAsync(req, _logger); if (!isValid) { return(new BadRequestResult()); } var request = input.Request; SkillResponse response = new SkillResponse { Response = new ResponseBody() }; DictionaryLocaleSpeechStore store = LanguagesResource.SetupLanguageResources(); ILocaleSpeech locale = input.CreateLocale(store); try { if (input.Session.Attributes == null) { input.Session.Attributes = new Dictionary <string, object>(); } if (!(request is IntentRequest intentRequest)) { return(new BadRequestResult()); } string IntentName = intentRequest.Intent.Name; if (string.IsNullOrEmpty((String)input.Session.Attributes["Auth"])) { //Autenticação string token = await HttpSenderApi.Call(); input.Session.Attributes["Auth"] = token; } if (intentRequest.Intent.Name == "PinUsuarioIntent") { Account user = await new LogInPinAlexa(_repository).LogInAlexaAsync(intentRequest.Intent.Slots["pin"].Value); if (user != null) { input.Session.Attributes.Add("pin", user.AccountId); IOutputSpeech message = await locale.Get(LanguageKeys.Pinvalido, null); response = ResponseBuilder.Ask(message, null, input.Session); return(new OkObjectResult(response)); } else { IOutputSpeech message = await locale.Get(LanguageKeys.PinInvalido, null); response = ResponseBuilder.Ask(message, null, input.Session); return(new OkObjectResult(response)); } } if (intentRequest.Intent.Name != "PinUsuarioIntent") { response = await ExecuteIntentAlexaAsync(IntentName, input, locale); } } catch (Exception ex) { var message = await locale.Get(LanguageKeys.Error, null); response = ResponseBuilder.Tell(message); _logger.LogError(ex.Message + " : ", message); } return(new OkObjectResult(response)); }