public static async Task Run()

in AlexaSkill/AlexaSkill/Alexa.cs [24:90]


        public static async Task<IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            string json = await req.ReadAsStringAsync();
            var skillRequest = JsonConvert.DeserializeObject<SkillRequest>(json);

            //this is the language used to invoke the skill
            string language = skillRequest.Request.Locale;

            bool isValid = await ValidateRequest(req, log, skillRequest);
            if (!isValid)
            {
                return new BadRequestResult();
            }

            var requestType = skillRequest.GetRequestType();
            var locale = SetupLanguages(skillRequest);

            SkillResponse response = null;

            if (requestType == typeof(LaunchRequest))
            {
                var message = await locale.Get("Welcome", null);
                response = ResponseBuilder.Tell(message);
                response.Response.ShouldEndSession = false;
            }
            else if (requestType == typeof(IntentRequest))
            {
                var intentRequest = skillRequest.Request as IntentRequest;

                if (intentRequest.Intent.Name == "LastPosts")
                {
                    string rss = "https://blogs.msdn.microsoft.com/appconsult/feed/";
                    string output = string.Empty;
                    List<string> news = await ParseFeed(rss);

                    var message = await locale.Get("LastPosts", new string[] { news.FirstOrDefault() });

                    response = ResponseBuilder.Tell(message);
                }
                else if (intentRequest.Intent.Name == "AMAZON.CancelIntent")
                {
                    var message = await locale.Get("Cancel", null);
                    response = ResponseBuilder.Tell(message);
                }
                else if (intentRequest.Intent.Name == "AMAZON.HelpIntent")
                {
                    var message = await locale.Get("Help", null);
                    response = ResponseBuilder.Tell(message);
                    response.Response.ShouldEndSession = false;
                }
                else if (intentRequest.Intent.Name == "AMAZON.StopIntent")
                {
                    var message = await locale.Get("Stop", null);
                    response = ResponseBuilder.Tell(message);
                }
            }
            else if (requestType == typeof(SessionEndedRequest))
            {
                log.LogInformation("Session ended");
                response = ResponseBuilder.Empty();
                response.Response.ShouldEndSession = true;
            }

            return new OkObjectResult(response);
        }