public async Task <IEnumerable <CarVariant> > GetWithFilter(ModelsApiRequest request) { IQueryable <CarVariant> variants = All; if (request.Brands != null) { variants = variants.Where(q => request.Brands.Contains(q.CarTrim.CarModel.BrandName)); } if (request.Engines != null) { variants = variants.Where(q => request.Engines.Contains(q.Engine)); } if (request.Years != null) { variants = variants.Where(q => request.Years.Contains(q.Year)); } if (request.FuelTypes != null) { variants = variants.Where(q => request.FuelTypes.Contains((FuelTypes)q.FuelType)); } if (request.GearTypes != null) { variants = variants.Where(q => request.GearTypes.Contains((GearTypes)q.GearType)); } List <CarVariant> models = await variants.ToListAsync(); return(models); }
public async Task <IActionResult> Get([FromQuery] ModelsApiRequest request) { _logger.LogInformation($"Query with params: {JsonConvert.SerializeObject(request)}"); var models = await _context.GetWithFilter(request); if (models == null) { return(NotFound()); } return(GetResponseJsonResult(models)); }
public async Task <IActionResult> Get(int id, [FromQuery] ModelsApiRequest request) { _logger.LogInformation($"Query with params: id: {id}, {JsonConvert.SerializeObject(request)}"); var model = await _context.FindById(id); if (model == null) { return(NotFound()); } return(GetResponseJsonResult(new List <CarVariant> { model })); }