public async Task <ActionResult <EstablishmentDto> > GetById([FromRoute(Name = "EstablishmentId")] Guid establishmentId, [FromQuery(Name = "Includes")] List <string> includes, [FromServices] EstablishmentParametersValidator validator) { if (validator is null) { throw new ArgumentNullException(nameof(validator)); } // Create an EstablishmentParameters instance containing only the requested Includes var parameters = new EstablishmentParameters { Includes = includes }; // Manual validation var validationResult = validator.Validate(parameters); validationResult.AddToModelState(ModelState, null); if (!ModelState.IsValid) { return(ValidationProblem(ModelState)); } var establishment = await _establishmentService.GetById(establishmentId, parameters); if (establishment == null) { return(NotFound()); } return(Ok(establishment)); }
public async Task <ActionResult <IEnumerable <EstablishmentDto> > > GetAll([CustomizeValidator(Skip = true)][FromQuery] EstablishmentParameters establishmentParameters, [FromQuery(Name = "Includes")] List <string> includes, [FromServices] EstablishmentParametersValidator validator) { if (establishmentParameters is null) { throw new ArgumentNullException(nameof(establishmentParameters)); } if (validator is null) { throw new ArgumentNullException(nameof(validator)); } // Add requested Includes to EstablishmentParameters before validation establishmentParameters.Includes = includes; // Perform manual validation now that EstablishmentParameters is complete var validationResult = validator.Validate(establishmentParameters); validationResult.AddToModelState(ModelState, null); if (!ModelState.IsValid) { return(ValidationProblem(ModelState)); } var establishments = await _establishmentService.GetAll(establishmentParameters); return(Ok(establishments)); }