Ejemplo n.º 1
0
        private static IQueryable <Property> AddFiltersOnQuery(GetAllPropertiesFilter filter, IQueryable <Property> properties)
        {
            if (filter?.MaxPricePerNight > 0)
            {
                properties = properties.Where(x => x.PricePerNight <= filter.MaxPricePerNight);
            }

            if (filter?.MinPricePerNight > 0)
            {
                properties = properties.Where(x => x.PricePerNight >= filter.MinPricePerNight);
            }

            if (filter?.AccommodatesNumber > 0)
            {
                properties = properties.Where(x => x.AccommodatesNumber >= filter.AccommodatesNumber);
            }

            if (filter?.UserId > 0)
            {
                properties = properties.Where(x => x.UserId == filter.UserId);
            }

            if (filter?.CityId > 0)
            {
                properties = properties.Where(x => x.CityId == filter.CityId);
            }

            return(properties);
        }
Ejemplo n.º 2
0
        public async Task <IEnumerable <Property> > GetAllPropertiesAsync(GetAllPropertiesFilter filter)
        {
            var properties = _dataContext.Properties.AsQueryable();

            properties = AddFiltersOnQuery(filter, properties);

            return(await properties.ToListAsync());
        }