public ActionResult Search(string text) { if (text == null || text == string.Empty) { return(RedirectToAction("Products")); } BookRepository br = new BookRepository(); List <Book> books = br.Search(text); AuthorRepository authorRep = new AuthorRepository(); List <CheckboxItem> checkBoxesGenre = new List <CheckboxItem>(); List <CheckboxItem> checkBoxesCountry = new List <CheckboxItem>(); List <CheckboxItem> checkBoxesLanguage = new List <CheckboxItem>(); List <string> genres = br.GetGenres().ToList(); List <string> countries = authorRep.GetCountries().ToList(); List <string> languages = br.GetLanguages().ToList(); for (int i = 0; i < genres.Count; i++) { checkBoxesGenre.Add(new CheckboxItem { Id = i, Name = genres[i], IsSelected = false }); } for (int i = 0; i < countries.Count; i++) { checkBoxesCountry.Add(new CheckboxItem { Id = i, Name = countries[i], IsSelected = false }); } for (int i = 0; i < languages.Count; i++) { checkBoxesLanguage.Add(new CheckboxItem { Id = i, Name = languages[i], IsSelected = false }); } FilterBooks fb = new FilterBooks(99, checkBoxesGenre.AsEnumerable <CheckboxItem>(), checkBoxesCountry.AsEnumerable(), checkBoxesLanguage.AsEnumerable()); //FilterBooks fb = new FilterBooks(99, bookRep.GetGenres(), authorRep.GetCountries(), bookRep.GetLanguages()); ViewBag.Books = books; ViewBag.Title = "Search Results: '" + text + "'"; return(View("Index", fb)); }
private static void OCPWithAbstractClassAndSpecification() { var filterSpec = new FilterBooks(); var resultLanguage = filterSpec.Filter(BooksToFilter, new BookLanguageSpecification(TypeLanguage.EN)).ToList(); var resultCategory = filterSpec.Filter(BooksToFilter, new BookCategorySpecification(TypeCategory.Philosophy)).ToList(); Console.WriteLine( string.Format("Princípio OCP aplicado utilizando Abstract Class e Specification, {0} items encontrados para a categoria Filosofy, {1} items encontrados para o idioma EN", resultCategory.Count().ToString(), resultLanguage.Count().ToString()) ); }
public ActionResult Products() { BookRepository bookRep = new BookRepository(); AuthorRepository authorRep = new AuthorRepository(); List <CheckboxItem> checkBoxesGenre = new List <CheckboxItem>(); List <CheckboxItem> checkBoxesCountry = new List <CheckboxItem>(); List <CheckboxItem> checkBoxesLanguage = new List <CheckboxItem>(); List <string> genres = bookRep.GetGenres().ToList(); List <string> countries = authorRep.GetCountries().ToList(); List <string> languages = bookRep.GetLanguages().ToList(); for (int i = 0; i < genres.Count; i++) { checkBoxesGenre.Add(new CheckboxItem { Id = i, Name = genres[i], IsSelected = false }); } for (int i = 0; i < countries.Count; i++) { checkBoxesCountry.Add(new CheckboxItem { Id = i, Name = countries[i], IsSelected = false }); } for (int i = 0; i < languages.Count; i++) { checkBoxesLanguage.Add(new CheckboxItem { Id = i, Name = languages[i], IsSelected = false }); } FilterBooks fb = new FilterBooks(99, checkBoxesGenre.AsEnumerable <CheckboxItem>(), checkBoxesCountry.AsEnumerable(), checkBoxesLanguage.AsEnumerable()); var books = bookRep.GetBooks(20); //FilterBooks fb = new FilterBooks(99, bookRep.GetGenres(), authorRep.GetCountries(), bookRep.GetLanguages()); ViewBag.Books = books; return(View("Index", fb)); }
public ActionResult Filter(FilterBooks filter) { BookRepository br = new BookRepository(); AuthorRepository ar = new AuthorRepository(); List <string> checkedGenres = new List <string>(); List <string> checkedCountries = new List <string>(); List <string> checkedLanguages = new List <string>(); List <string> allGenres = br.GetGenres().ToList(); List <string> allCountries = ar.GetCountries().ToList(); List <string> allLanguages = br.GetLanguages().ToList(); for (int i = 0; i < filter.Genres.Count(); i++) { filter.Genres.ToList()[i].Name = allGenres[i]; if (filter.Genres.ToList()[i].IsSelected) { checkedGenres.Add(allGenres[i]); } } for (int i = 0; i < filter.Countries.Count(); i++) { filter.Countries.ToList()[i].Name = allCountries[i]; if (filter.Countries.ToList()[i].IsSelected) { checkedCountries.Add(allCountries[i]); } } for (int i = 0; i < filter.Languages.Count(); i++) { filter.Languages.ToList()[i].Name = allLanguages[i]; if (filter.Languages.ToList()[i].IsSelected) { checkedLanguages.Add(allLanguages[i]); } } var books = br.FilterQuery(filter.Price, checkedGenres, checkedCountries, checkedLanguages); ViewBag.Books = books; return(View("Index", filter)); }