//public CurrentUser user { get; private set; }



        public LinkedList <BookWithCategoriesAuthorsAndScore> generateRecommendations(CurrentUser user)
        {
            LinkedList <BookWithAuthorsAndCategories> AllBooksWithAuthors = recommendationsFunctions.getAllBookWithAuthors(user);

            BookWithCategoriesAuthorsAndScore[] booksWithAuthoresAndScore = new BookWithCategoriesAuthorsAndScore[AllBooksWithAuthors.Count];
            int i = 0;

            foreach (Book book in AllBooksWithAuthors)
            {
                //BookWithAuthorsAndScore bookAuScr = new BookWithAuthorsAndScore(book as BookWithAuthors);
                BookWithCategoriesAuthorsAndScore bookAuScr = new Book(book);
                bookAuScr.Score = calculateScoreForBook(book, user);
                booksWithAuthoresAndScore[i++] = bookAuScr;
            }
            return(buildScoreSortedBooksList(booksWithAuthoresAndScore));
        }