public async Task<IEnumerable<Book>> FilterAsync(BookFilter cFilter) { var builder = Builders<Book>.Filter; var filters = new List<FilterDefinition<Book>>(); if(!String.IsNullOrWhiteSpace(cFilter.BookName)) { filters.Add(builder.Eq("Name", new BsonRegularExpression(cFilter.BookName))); } if(cFilter.Year.HasValue) { filters.Add(builder.Eq("Year", cFilter.Year)); } if(!String.IsNullOrWhiteSpace(cFilter.Author)) { filters.Add(builder.Eq("Author", new BsonRegularExpression(cFilter.Author))); } /*if (cFilter.Price.) { filters.Add(builder.Eq("Price", cFilter.Price)); }*/ return await db.Books.Find(builder.And(filters)).ToListAsync(); }
public async Task<ActionResult>Index(BookFilter cFilter) { var books = await FilterAsync(cFilter); var model = new BookList { Books = books, Filter = cFilter }; return View(model); }