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