Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }