public IEnumerable <BookViewModel> Sort(IEnumerable <BookViewModel> loadedSource)
        {
            Contract.Requires(loadedSource != null);
            BookSorting.FillAuthor(loadedSource);
            var sorted      = loadedSource.Where(x => x.Author != null).OrderByDescending(x => x.Author.Name);
            var notSortable = loadedSource.Where(x => x.Author == null);

            return(notSortable.Union(sorted));
        }
        public IEnumerable <BookViewModel> Sort(IEnumerable <BookViewModel> loadedSource)
        {
            Contract.Requires(loadedSource != null);
            BookSorting.FillFirstPage(loadedSource);
            var available   = loadedSource.Where(x => x.FirstPage != null && x.FirstPage.Image.Thumbnail != null);
            var sorted      = available.OrderByDescending(x => ColorMapLoader.LoadColorMap(x.ID, x.FirstPage.Image.ID, x.FirstPage.Image.Thumbnail.AbsoluteMasterPath, CoverComparator.Color.Red));
            var notSortable = loadedSource.Where(x => x.FirstPage == null || x.FirstPage.Image.Thumbnail == null);

            return(notSortable.Union(sorted));
        }