static void Main(string[] args) { #region Popular ListBooks = new List <BookModel>(); ListBooks.Add(new BookModel(1, "Java How to Program", "Deitel & Deitel", 2007, true)); ListBooks.Add(new BookModel(2, "Patterns of Enterprise Application Architecture", "Martin Fowler", 2002, true)); ListBooks.Add(new BookModel(3, "Head First Design Patterns", "Elisabeth Freeman", 2004, true)); ListBooks.Add(new BookModel(4, "Internet & World Wide Web: How to Program", "Deitel & Deitel", 2007, true)); #endregion #region Docs Documentation.DocSystem(); #endregion #region Objetos SeviceBooksOrderer.Service.SeviceBooksOrderer service = new SeviceBooksOrderer.Service.SeviceBooksOrderer(); IBooksOrderer idBook = new ServiceOrderById(); IBooksOrderer title = new ServiceOrderByTitle(); IBooksOrderer idAutor = new ServiceOrderByAuthor(); IBooksOrderer editionYear = new ServiceOrderByEditionYear(); IBooksOrderer idBookAndTitle = new ServiceOrderByIdAndTitle(); IBooksOrderer idBookAndAuthor = new ServiceOrderByIdAndAuthor(); IBooksOrderer idBookAndEditionYear = new ServiceOrderByIdBookAndEditionYear(); IBooksOrderer authorAndIdBook = new ServiceOrderByAuthorAndId(); IBooksOrderer authorAndTitle = new ServiceOrderByAuthorAndTitle(); IBooksOrderer authorAndEditionYear = new ServiceOrderByAuthorAndEditionYear(); IBooksOrderer titleAndIdBook = new ServiceOrderByTitleAndId(); IBooksOrderer titleAndAuthor = new ServiceOrderByTitleAndAuthor(); IBooksOrderer titleAndEditionYear = new ServiceOrderByTitleAndEditionYear(); IBooksOrderer editionYearAndIdBook = new ServiceOrderByEditionYearAndIdBook(); IBooksOrderer editionYearAndTitle = new ServiceOrderByEditionYearAndTitle(); IBooksOrderer editionYearAndAuthor = new ServiceOrderByEditionYearAndAuthor(); IBooksOrderer idBookAndTitleAndAuthor = new ServiceOrderByIdAndTitleAndAuthor(); IBooksOrderer idBookAndAuthorAndTitle = new ServiceOrderByIdAndAuthorAndTitle(); IBooksOrderer idBookAndEditionYearAndTitle = new ServiceOrderByIdAndEditionYearAndTitle(); IBooksOrderer idBookAndTitleAndEditionYear = new ServiceOrderByIdAndTitleAndEditionYear(); IBooksOrderer idBookAndAuthorAndEditionYear = new ServiceOrderByIdAndAuthorAndEditionYear(); IBooksOrderer idBookAndEditionYearAndAuthor = new ServiceOrderByIdAndEditionYearAndAuthor(); IBooksOrderer titleAndIdBookAndAuthor = new ServiceOrderByTitleAndIdAndAuthor(); IBooksOrderer titleAndAuthorAndIdBook = new ServiceOrderByTitleAndAuthorAndId(); IBooksOrderer titleAndIdBookAndEditionYear = new ServiceOrderByTitleAndIdAndEditionYear(); IBooksOrderer titleAndEditionYearAndIdBook = new ServiceOrderByTitleAndEditionYearAndId(); IBooksOrderer titleAndAuthorAndEditionYear = new ServiceOrderByTitleAndAuthorAndEditionYear(); IBooksOrderer titleAndEditionYearAndAuthor = new ServiceOrderByTitleAndEditionYearAndAuthor(); IBooksOrderer authorAndIdBookAndTitle = new ServiceOrderByAuthorAndIdAndTitle(); IBooksOrderer authorAndTitleAndIdBook = new ServiceOrderByAuthorAndTitleAndId(); IBooksOrderer authorAndIdBookAndEditionYear = new ServiceOrderByAuthorAndIdAndEditionYear(); IBooksOrderer authorAndEditionYearAndIdBook = new ServiceOrderByAuthorAndEditionYearAndId(); IBooksOrderer authorAndTitleAndEditionYear = new ServiceOrderByAuthorAndTitleAndEditionYear(); IBooksOrderer authorAndEditionYearAndTitle = new ServiceOrderByAuthorAndEditionYearAndTitle(); IBooksOrderer editionYearAndIdBookAndTitle = new ServiceOrderByEditionYearAndIdAndTitle(); IBooksOrderer editionYearAndTitleAndIdBook = new ServiceOrderByEditionYearAndTitleAndId(); IBooksOrderer editionYearAndIdBookAndAuthor = new ServiceOrderByEditionYearAndIdAndAuthor(); IBooksOrderer editionYearAndAuthorAndIdBook = new ServiceOrderByEditionYearAndAuthorAndId(); IBooksOrderer editionYearAndTitleAndAuthor = new ServiceOrderByEditionYearAndTitleAndAuthor(); IBooksOrderer editionYearAndAuthorAndTitle = new ServiceOrderByEditionYearAndAuthorAndTitle(); #endregion #region Ordenações int asc = Convert.ToInt32(ListOrderes.Asc); int desc = Convert.ToInt32(ListOrderes.Desc); int nop = Convert.ToInt32(ListOrderes.Nop); #endregion #region Testes //Teste Ascendente ------------------------------------------------- // IdLivro ascendente var bookIdAsc = service.BooksOrderer(ListBooks, idBook, asc); ShowResultOrderByBook byBookAsc = new ShowResultOrderByBook(); byBookAsc.ShowMeOrderByTests(bookIdAsc, asc); // Titulo ascendente var titleAsc = service.BooksOrderer(ListBooks, title, asc); ShowResultOrderByTitle byTitleAsc = new ShowResultOrderByTitle(); byTitleAsc.ShowMeOrderByTests(titleAsc, asc); // Autor ascendente var autAsc = service.BooksOrderer(ListBooks, idAutor, asc); ShowResultOrderByAuthor byAuthorAsc = new ShowResultOrderByAuthor(); byAuthorAsc.ShowMeOrderByTests(autAsc, asc); // Ano edição ascendente var yerEditAsc = service.BooksOrderer(ListBooks, editionYear, asc); ShowResultOrderByEditionYear byEditionYearAsc = new ShowResultOrderByEditionYear(); byEditionYearAsc.ShowMeOrderByTests(yerEditAsc, asc); //Teste descendente ----------------------------------------------- // IdLivro descendente var bookIdDesc = service.BooksOrderer(ListBooks, idBook, desc); ShowResultOrderByBook byBooDesc = new ShowResultOrderByBook(); byBooDesc.ShowMeOrderByTests(bookIdDesc, desc); // Titulo descendente var titleDesc = service.BooksOrderer(bookIdDesc, title, desc); ShowResultOrderByTitle byTitleDesc = new ShowResultOrderByTitle(); byTitleDesc.ShowMeOrderByTests(titleDesc, desc); // Autor descendente var autDesc = service.BooksOrderer(ListBooks, idAutor, desc); ShowResultOrderByAuthor byAuthorDesc = new ShowResultOrderByAuthor(); byAuthorDesc.ShowMeOrderByTests(autDesc, desc); // Ano edição descendente var yerEditDesc = service.BooksOrderer(ListBooks, editionYear, desc); ShowResultOrderByEditionYear yerEdithDesc = new ShowResultOrderByEditionYear(); yerEdithDesc.ShowMeOrderByTests(yerEditDesc, desc); #endregion // Requisitos de ordenações especiais --------------------------------------- // IdLivro e Titulo var bookAndTitleAsc = service.BooksOrderer(ListBooks, idBookAndTitle, asc); ShowResultOrderByIdAndTitle BookAndTitleAsc = new ShowResultOrderByIdAndTitle(); BookAndTitleAsc.ShowMeOrderByTests(bookAndTitleAsc, asc); var bookAndTitleDesc = service.BooksOrderer(ListBooks, idBookAndTitle, desc); ShowResultOrderByIdAndTitle BookAndTitleDesc = new ShowResultOrderByIdAndTitle(); BookAndTitleDesc.ShowMeOrderByTests(bookAndTitleDesc, desc); // IdLivro e Autor var idBookAndAutorAsc = service.BooksOrderer(ListBooks, idBookAndAuthor, asc); ShowResultOrderByIdAndAuthor BookAndAuthorAsc = new ShowResultOrderByIdAndAuthor(); // BookAndAuthorAsc.ShowMeOrderByTests(bookAndAuthorAsc, asc); var idBookAndAutorDesc = service.BooksOrderer(ListBooks, idBookAndAuthor, desc); // ShowResultOrderByIdAndAuthor BookAndAuthorAsc = new ShowResultOrderByIdAndAuthor(); // BookAndAuthorAsc.ShowMeOrderByTests(bookAndAuthorAsc, asc); // IdLivro e Ano da Edição var idBookAndEditionYearAsc = service.BooksOrderer(ListBooks, idBookAndEditionYear, asc); // show asc var idBookAndEditionYearDesc = service.BooksOrderer(ListBooks, idBookAndEditionYear, desc); // show desc //Titulo e IdLivro var titleAndBookAsc = service.BooksOrderer(ListBooks, titleAndIdBook, asc); ShowResultOrderByTitleAndId TitleAndBookAsc = new ShowResultOrderByTitleAndId(); TitleAndBookAsc.ShowMeOrderByTests(titleAndBookAsc, asc); var titleAndBookDesc = service.BooksOrderer(ListBooks, idBookAndTitle, desc); ShowResultOrderByTitleAndId TitleAndBookDesc = new ShowResultOrderByTitleAndId(); TitleAndBookDesc.ShowMeOrderByTests(titleAndBookDesc, desc); // Titulo e Autor var titleAndAuthorAsc = service.BooksOrderer(ListBooks, titleAndAuthor, asc); //show asc var titleAndAuthorDesc = service.BooksOrderer(ListBooks, titleAndAuthor, desc); //show desc // Titulo e Ano de Edição var titleAndEditionYearAsc = service.BooksOrderer(ListBooks, titleAndEditionYear, asc); //show asc var titleAndEditionYearDesc = service.BooksOrderer(ListBooks, titleAndEditionYear, desc); //show desc // Autor e IdLivro var authorAndIdBookAsc = service.BooksOrderer(ListBooks, authorAndIdBook, asc); // show asc var authorAndIdBookDesc = service.BooksOrderer(ListBooks, authorAndIdBook, desc); // show desc // Autor e Titulo var authorAndTitleAsc = service.BooksOrderer(ListBooks, authorAndTitle, asc); // show asc var authorAndTitleDesc = service.BooksOrderer(ListBooks, authorAndTitle, desc); // show desc // Autor e Ano da Edição var authorAndEditionYearAsc = service.BooksOrderer(ListBooks, authorAndEditionYear, asc); //show asc var authorAndEditionYearDesc = service.BooksOrderer(ListBooks, authorAndEditionYear, desc); //show desc // Ano da Edição e IdLivro var editionYearAndIdBookAsc = service.BooksOrderer(ListBooks, editionYearAndIdBook, asc); // show asc var editionYearAndIdBookDesc = service.BooksOrderer(ListBooks, editionYearAndIdBook, desc); // show desc // Ano da Edição e Titulo var editionYearAndTitleAsc = service.BooksOrderer(ListBooks, editionYearAndTitle, asc); // show asc var editionYearAndTitleDesc = service.BooksOrderer(ListBooks, editionYearAndTitle, desc); // show desc // Ano da Edição e Autor var editionYearAndAuthorAsc = service.BooksOrderer(ListBooks, editionYearAndAuthor, asc); // show asc var editionYearAndAuthorDesc = service.BooksOrderer(ListBooks, editionYearAndAuthor, desc); // show desc // IdLivro , Titulo e Autor var idBookAndTitleAndAuthorAsc = service.BooksOrderer(ListBooks, idBookAndTitleAndAuthor, asc); // show asc var idBookAndTitleAndAuthorDesc = service.BooksOrderer(ListBooks, idBookAndTitleAndAuthor, desc); // show desc // IdLivro , Autor e Titulo var idBookAndAuthorAndTitleAsc = service.BooksOrderer(ListBooks, idBookAndAuthorAndTitle, asc); // show asc var idBookAndAuthorAndTitleDesc = service.BooksOrderer(ListBooks, idBookAndAuthorAndTitle, desc); // show desc // IdLivro , Titulo e Ano de Edição var idBookAndTitleAndEditionYearAsc = service.BooksOrderer(ListBooks, idBookAndTitleAndEditionYear, asc); //show asc var idBookAndTitleAndEditionYearDesc = service.BooksOrderer(ListBooks, idBookAndTitleAndEditionYear, desc); // show desc // IdLivro , Ano de Edição e Titulo var idBookAndEditionYearAndTitleAsc = service.BooksOrderer(ListBooks, idBookAndEditionYearAndTitle, asc); //show asc var idBookAndEditionYearAndTitleDesc = service.BooksOrderer(ListBooks, idBookAndEditionYearAndTitle, desc); // show desc // IdLivro , Autor e Ano de Edição var idBookAndAuthorAndEditionYearAsc = service.BooksOrderer(ListBooks, idBookAndAuthorAndEditionYear, asc); //show asc var idBookAndAuthorAndEditionYearDesc = service.BooksOrderer(ListBooks, idBookAndAuthorAndEditionYear, desc); // show desc // IdLivro, Ano de Edição e Autor var idBookAndEditionYearAndAuthorAsc = service.BooksOrderer(ListBooks, idBookAndEditionYearAndAuthor, asc); //show asc var idBookAndEditionYearAndAuthorDesc = service.BooksOrderer(ListBooks, idBookAndEditionYearAndAuthor, desc); // show desc // Titulo,IdLivro e Autor var titleAndIdBookAndAuthorAsc = service.BooksOrderer(ListBooks, titleAndIdBookAndAuthor, asc); // show asc var titleAndIdBookAndAuthorDesc = service.BooksOrderer(ListBooks, titleAndIdBookAndAuthor, desc); // show desc // Titulo , Autor e IdLivro var titleAndAuthorAndIdBookAsc = service.BooksOrderer(ListBooks, titleAndAuthorAndIdBook, asc); // show asc var titleAndAuthorAndIdBookDesc = service.BooksOrderer(ListBooks, titleAndAuthorAndIdBook, desc); // show desc // Titulo, IdLivro e Ano de Edição var titleAndIdBookAndEditionYearAsc = service.BooksOrderer(ListBooks, titleAndIdBookAndEditionYear, asc); //show asc var titleAndIdBookAndEditionYearDesc = service.BooksOrderer(ListBooks, titleAndIdBookAndEditionYear, desc); // show desc // Titulo, Ano de Edição e IdLivro var titleAndEditionYearAndIdBookAsc = service.BooksOrderer(ListBooks, titleAndEditionYearAndIdBook, asc); //show asc var titleAndEditionYearAndIdBookDesc = service.BooksOrderer(ListBooks, titleAndEditionYearAndIdBook, desc); // show desc // Titulo, Autor e Ano de Edição var titleAndAuthorAndEditionYearAsc = service.BooksOrderer(ListBooks, titleAndAuthorAndEditionYear, asc); //show asc var titleAndAuthorAndEditionYearDesc = service.BooksOrderer(ListBooks, titleAndAuthorAndEditionYear, desc); // show desc // Titulo, Ano de Edição e Autor var titleAndEditionYearAndAuthorAsc = service.BooksOrderer(ListBooks, titleAndEditionYearAndAuthor, asc); //show asc var titleAndEditionYearAndAuthorDesc = service.BooksOrderer(ListBooks, titleAndEditionYearAndAuthor, desc); // show desc // Autor,IdLivro, Titulo var autorAndIdBookAndTitleAsc = service.BooksOrderer(ListBooks, authorAndIdBookAndTitle, asc); // show asc var autorAndIdBookAndTitleDesc = service.BooksOrderer(ListBooks, authorAndIdBookAndTitle, desc); // show desc // Autor, Titulo e IdLivro var authorAndTitleAndIdBookAsc = service.BooksOrderer(ListBooks, authorAndTitleAndIdBook, asc); // show asc var authorAndTitleAndIdBookDesc = service.BooksOrderer(ListBooks, authorAndTitleAndIdBook, desc); // show desc // Autor, IdLivro e Ano de Edição var authorAndIdBookAndEditionYearAsc = service.BooksOrderer(ListBooks, authorAndIdBookAndEditionYear, asc); //show asc var authorAndIdBookAndEditionYearDesc = service.BooksOrderer(ListBooks, authorAndIdBookAndEditionYear, desc); // show desc // Autor, Ano de Edição e IdLivro var authorAndEditionYearAndIdBookAsc = service.BooksOrderer(ListBooks, authorAndEditionYearAndIdBook, asc); //show asc var authorAndEditionYearAndIdBookDesc = service.BooksOrderer(ListBooks, authorAndEditionYearAndIdBook, desc); // show desc // Autor, Titulo e Ano de Edição var authorAndTitleAndEditionYearAsc = service.BooksOrderer(ListBooks, authorAndTitleAndEditionYear, asc); //show asc var authorAndTitleAndEditionYearDesc = service.BooksOrderer(ListBooks, authorAndTitleAndEditionYear, desc); // show desc // Autor, Ano de Edição e Titulo var AuthorAndEditionYearAndTitleAsc = service.BooksOrderer(ListBooks, authorAndEditionYearAndTitle, asc); //show asc var AuthorAndEditionYearAndTitleDesc = service.BooksOrderer(ListBooks, authorAndEditionYearAndTitle, desc); // show desc // Ano Edição ,IdLivro, Titulo var editionYearAndIdBookAndTitleAsc = service.BooksOrderer(ListBooks, editionYearAndIdBookAndTitle, asc); // show asc var editionYearAndIdBookAndTitleDesc = service.BooksOrderer(ListBooks, editionYearAndIdBookAndTitle, desc); // show desc // Ano Edição, Titulo e IdLivro var editionYearAndTitleAndIdBookAsc = service.BooksOrderer(ListBooks, editionYearAndTitleAndIdBook, asc); // show asc var editionYearAndTitleAndIdBookDesc = service.BooksOrderer(ListBooks, editionYearAndTitleAndIdBook, desc); // show desc // Ano Edição, IdLivro e Autor var editionYearAndIdBookAndAuthorAsc = service.BooksOrderer(ListBooks, editionYearAndIdBookAndAuthor, asc); //show asc var editionYearAndIdBookAndAuthorDesc = service.BooksOrderer(ListBooks, editionYearAndIdBookAndAuthor, desc); // show desc // Ano Edição, Autor e IdLivro var editionYearAndAuthorAndIdBookAsc = service.BooksOrderer(ListBooks, editionYearAndAuthorAndIdBook, asc); //show asc var editionYearAndAuthorAndIdBookDesc = service.BooksOrderer(ListBooks, editionYearAndAuthorAndIdBook, desc); // show desc // Ano de Edição, Titulo e Autor var editionYearAndTitleAndAuthorAsc = service.BooksOrderer(ListBooks, editionYearAndTitleAndAuthor, asc); //show asc var editionYearAndTitleAndAuthorDesc = service.BooksOrderer(ListBooks, editionYearAndTitleAndAuthor, desc); // show desc // Ano de Edição, Autor, e Titulo var editionYearAndAuthorAndTitleAsc = service.BooksOrderer(ListBooks, editionYearAndAuthorAndTitle, asc); //show asc var editionYearAndAuthorAndTitleDesc = service.BooksOrderer(ListBooks, editionYearAndAuthorAndTitle, desc); // show desc //Testes de Conjuntos ----------------------------------------- //Conjunto vazio ListBooks.Clear(); IBooksOrderer Empty = new ServiceOrderById(); var retBooksNot = service.BooksOrderer(ListBooks, Empty, nop); ShowResultOrderByEmpty retBooks = new ShowResultOrderByEmpty(); retBooks.ShowMeOrderByTests(retBooksNot, desc); //Fim ShowResultOrderByEnd.ShowMeOrderByEnd(); // #endregion }