/// <summary> /// Filter Rentals /// USING MongoDB.Driver.Linq /// </summary> /// <param name="filter"></param> /// <returns></returns> private async Task<IEnumerable<Rental>> FilterRentals(RentalFilter filter) { var collection = Context.Rentals.AsQueryable(); IMongoQueryable<Rental> query = collection; if (filter.PriceLimit != null) query = collection.Where(d => d.Price <= filter.PriceLimit); if (filter.SortBy == RentalFilter.SortOptions.Price) query = query.OrderBy(d => d.Price); else query = query.OrderBy(d => d.Address); return await query.ToListAsync(); }
// GET: Rentals public async Task<ActionResult> Index(RentalFilter filter) { IEnumerable<Rental> rentals = null; if (filter == null) { var bsonFilter = new BsonDocument(); //Simple test for CoreControl //var generic = await Context.GenericData_Alerts.FindAsync<Models.GenericData_Alerts>(filter).ToListAsync(); rentals = await Context.Rentals.FindAsync<Rental>(bsonFilter).ToListAsync(); } else rentals = await FilterRentals(filter); var model = new RentalsList { RentalFilter = filter, Rentals = rentals }; return View(model); }