public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log) { try { ValidatableRequestModel <LocationDetailsRequestModel> addLocationRequest = await req.GetJsonBody <LocationDetailsRequestModel, LocationDetailsRequestModelValidator>(); if (!addLocationRequest.IsValid) { return(addLocationRequest.ToBadRequest()); } WriteRequestResult result = await _locationDetailsService.Add(CreateLocationDto(addLocationRequest.Value)); switch (result.Status) { case WriteRequestStatus.Success: return(new CreatedResult(GetResourceLocation(result.ItemId, log), new { Id = result.ItemId })); case WriteRequestStatus.Duplicate: return(new AcceptedResult(GetResourceLocation(result.ItemId, log), new { Id = result.ItemId })); default: return(new StatusCodeResult(StatusCodes.Status500InternalServerError)); } } catch (Exception ex) { log.LogError($"AddLocation had an unexpexpected error: {ex.Message}"); return(new StatusCodeResult(StatusCodes.Status500InternalServerError)); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req, ILogger log, ExecutionContext context) { log.LogInformation($"C# Http trigger function executed at: {DateTime.Now}"); ValidatableRequestModel <ContactFormRequestModel> form = await req.GetJsonBody <ContactFormRequestModel, ContactFormRequestModelValidator>(); if (!form.IsValid) { log.LogInformation($"Invalid form data."); return(form.ToBadRequest()); } await _cloudQueue.Add(form.Value, context.FunctionAppDirectory); return(new OkObjectResult(true)); }