コード例 #1
0
 /// <summary>Constructs a new service.</summary>
 /// <param name="initializer">The service initializer.</param>
 public TranslateService(Google.Apis.Services.BaseClientService.Initializer initializer)
     : base(initializer)
 {
     detections   = new DetectionsResource(this);
     languages    = new LanguagesResource(this);
     translations = new TranslationsResource(this);
 }
コード例 #2
0
ファイル: Language.cs プロジェクト: greggaba/GCDotNet
 internal static Language FromResource(LanguagesResource resource) =>
 new Language(resource.Name, resource.Language);
コード例 #3
0
        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));
        }