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()); }