public List <Book> SortBooks(List <Book> books, BookSortMethod m) { switch (m) { case BookSortMethod.ByID: books.Sort((x, y) => x.ID.CompareTo(y.ID)); break; case BookSortMethod.ByTitle: books.Sort((x, y) => x.Title.CompareTo(y.Title)); break; case BookSortMethod.ByAuthor: books.Sort((x, y) => x.Author.CompareTo(y.Author)); break; case BookSortMethod.ByPages: books.Sort((x, y) => x.Pages.CompareTo(y.Pages)); break; case BookSortMethod.ByYearReaded: books.Sort((x, y) => x.YearReaded.CompareTo(y.YearReaded)); break; case BookSortMethod.ByYearRelease: books.Sort((x, y) => x.YearPublished.CompareTo(y.YearPublished)); break; case BookSortMethod.ByState: books.Sort((x, y) => x.State.CompareTo(y.State)); break; } return(books); }
public static void SortBooksFromBooksViewModel(BooksViewModel model, BookSortMethod m) { switch (m) { case BookSortMethod.ByID: model.Books.Sort((x, y) => x.ID.CompareTo(y.ID)); break; case BookSortMethod.ByTitle: model.Books.Sort((x, y) => x.Title.CompareTo(y.Title)); break; case BookSortMethod.ByAuthor: model.Books.Sort((x, y) => x.Author.CompareTo(y.Author)); break; case BookSortMethod.ByPages: model.Books.Sort((x, y) => x.Pages.CompareTo(y.Pages)); break; case BookSortMethod.ByYearReaded: model.Books.Sort((x, y) => x.YearReaded.CompareTo(y.YearReaded)); break; case BookSortMethod.ByYearRelease: model.Books.Sort((x, y) => x.YearPublished.CompareTo(y.YearPublished)); break; case BookSortMethod.ByState: model.Books.Sort((x, y) => x.State.CompareTo(y.State)); break; } }
public IActionResult ShowSortedBooks(int sort, string search) { BookSortMethod method = (BookSortMethod)sort; var books = _service.GetBooksByUser(GetUserId().Result); if (!String.IsNullOrWhiteSpace(search)) { books.RemoveAll(b => !b.Title.Contains(search)); } var bookViewModelList = books.Select(b => new BookViewModel(b)).ToList(); var booksViewModel = new BooksViewModel { Books = bookViewModelList, SortMethod = method }; BookServie.SortBooksFromBooksViewModel(booksViewModel, method); return(View("../Books/BooksView", booksViewModel)); }