public async Task <JsonResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("OrderDetail function called."); string orderNumber = req.Query["orderNumber"]; if (string.IsNullOrEmpty(orderNumber)) { var result = new JsonResult("OrderDetail must be called with an order number", AdventureWorksSerializerSettings.Get()); result.StatusCode = StatusCodes.Status400BadRequest; return(result); } log.LogInformation($"OrderDetail looking for order {orderNumber}"); var order = await _repository.GetOrderFromOrderNumberAsync(orderNumber); if (order == null) { var result = new JsonResult($"Could not find order with order number {orderNumber}", AdventureWorksSerializerSettings.Get()); result.StatusCode = StatusCodes.Status404NotFound; return(result); } return(new JsonResult(order, AdventureWorksSerializerSettings.Get())); }
public async Task <JsonResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("OrderFromEmail function called."); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); var email = JsonConvert.DeserializeObject <EmailContents>(requestBody); if (email == null) { var result = new JsonResult("Could not get email contents from post body.", AdventureWorksSerializerSettings.Get()); result.StatusCode = StatusCodes.Status400BadRequest; return(result); } var salesOrderPattern = @"SO\d{5}\b"; var salesOrderRegex = new Regex(salesOrderPattern, RegexOptions.IgnoreCase); string salesOrderNumber = null; // Check the subject first var subjectMatch = salesOrderRegex.Match(email.Subject); if (subjectMatch.Success) { salesOrderNumber = subjectMatch.Value; } else { var bodyMatch = salesOrderRegex.Match(email.Body); if (bodyMatch.Success) { salesOrderNumber = bodyMatch.Value; } } if (string.IsNullOrEmpty(salesOrderNumber)) { var result = new JsonResult("Could not find a sales order number in the email.", AdventureWorksSerializerSettings.Get()); result.StatusCode = StatusCodes.Status400BadRequest; return(result); } var salesOrder = await _repository.GetOrderFromOrderNumberAsync(salesOrderNumber); if (salesOrder == null) { var result = new JsonResult($"Could not find sales order with order number {salesOrderNumber}", AdventureWorksSerializerSettings.Get()); result.StatusCode = StatusCodes.Status404NotFound; return(result); } return(new JsonResult(salesOrder, AdventureWorksSerializerSettings.Get())); }
public async Task <JsonResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("Getting weekly specials."); var weeklySpecials = await _repository.GetWeeklySpecials(); var settings = AdventureWorksSerializerSettings.Get(); var result = new JsonResult(weeklySpecials, settings); return(result); }