示例#1
0
        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));
        }