예제 #1
0
        private static void OCPWithExtensionMethods()
        {
            var resultCategory = new FilterBookWithoutOCP_V1().FilterByCategory(BooksToFilter, TypeCategory.Philosophy);
            var resultLanguage = new FilterBookWithoutOCP_V1().FilterByLanguage(BooksToFilter, TypeLanguage.EN);

            Console.WriteLine(
                string.Format("Princípio OCP aplicado utilizando Extension Methods, {0} items encontrados para a categoria Filosofy, {1} items encontrados para o idioma EN",
                              resultCategory.Count().ToString(),
                              resultLanguage.Count().ToString())
                );
        }
 public static IEnumerable <Book> FilterByLanguage(this FilterBookWithoutOCP_V1 filter,
                                                   IList <Book> list, TypeLanguage language)
 {
     return(list.Where(x => x.TypeLanguage.Equals(language)).ToList());
 }
 public static IEnumerable <Book> FilterByCategory(this FilterBookWithoutOCP_V1 filer,
                                                   IList <Book> list, TypeCategory category)
 {
     return(list.Where(x => x.TypeCategory.Equals(category)).ToList());
 }