public static IActionResult RunAcronymLinkerForLists([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log, ExecutionContext executionContext) { log.LogInformation("Link Acronyms List Custom Skill: C# HTTP trigger function processed a request."); string skillName = executionContext.FunctionName; IEnumerable <WebApiRequestRecord> requestRecords = WebApiSkillHelpers.GetRequestRecords(req); if (requestRecords == null) { return(new BadRequestObjectResult($"{skillName} - Invalid request record array.")); } AcronymLinker acronymLinker = new AcronymLinker(executionContext.FunctionAppDirectory); WebApiSkillResponse response = WebApiSkillHelpers.ProcessRequestRecords(skillName, requestRecords, (inRecord, outRecord) => { var words = JsonConvert.DeserializeObject <JArray>(JsonConvert.SerializeObject(inRecord.Data["words"])); var acronyms = words .Distinct() .Select(jword => { var word = jword.Value <string>(); if (word.All(char.IsUpper) && acronymLinker.Acronyms.TryGetValue(word, out string description)) { return(new { value = word, description }); } return(null); }) .Where(acronym => acronym != null); outRecord.Data["acronyms"] = acronyms.ToArray(); return(outRecord); });
public static IActionResult RunAcronymLinker( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log, ExecutionContext executionContext) { log.LogInformation("Link Acronyms Custom Skill: C# HTTP trigger function processed a request."); string skillName = executionContext.FunctionName; IEnumerable <WebApiRequestRecord> requestRecords = WebApiSkillHelpers.GetRequestRecords(req); if (requestRecords == null) { return(new BadRequestObjectResult($"{skillName} - Invalid request record array.")); } AcronymLinker acronymLinker = new AcronymLinker(executionContext.FunctionAppDirectory); WebApiSkillResponse response = WebApiSkillHelpers.ProcessRequestRecords(skillName, requestRecords, (inRecord, outRecord) => { string word = inRecord.Data["word"] as string; if (word.All(char.IsUpper) && acronymLinker.Acronyms.TryGetValue(word, out string description)) { outRecord.Data["acronym"] = new { value = word, description }; } return(outRecord); }); return(new OkObjectResult(response)); }