Beispiel #1
0
 /// <summary>
 /// Creates a <see cref="BadRequestObjectResult"/> containing a collection
 /// of minimal validation error details.
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public static BadRequestObjectResult ToBadRequest <T>(this ValidatableRequestModel <T> request)
 {
     return(new BadRequestObjectResult(request.Errors.Select(e => new {
         Field = e.PropertyName,
         Error = e.ErrorMessage
     })));
 }
Beispiel #2
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));
        }