Ejemplo n.º 1
0
        public BookCardViewModel GetBookCard(Guid bookId, string userId)
        {
            BookCardViewModel View = new BookCardViewModel();

            var book    = _bookService.GetBook(bookId);
            var raiting = _raitingBooksService.GetRaiting(bookId);

            View.Book              = book;
            View.Book.Categories   = GetNameCategories(book.Categories);
            View.Book.KeyWordsName = _keyWordService.CheckWord(book.KeyWordsId);
            View.ActiveHolder      = _holdersService.CheckHolder(userId, bookId);
            View.Notification      = _notificationService.Check(userId, bookId);
            View.Count             = raiting.Count();

            if (raiting == null || raiting.Count() == 0)
            {
                View.AllRaiting = 0;
            }
            else
            {
                double averageRaiting = 0;

                raiting.ForEach(rait => averageRaiting += rait.Score);

                View.AllRaiting = averageRaiting / raiting.Count();

                try
                {
                    View.ScoreRaiting = raiting.FirstOrDefault(rait => rait.UserId == userId).Score;
                }
                catch
                {
                    View.ScoreRaiting = 0;
                }
            }

            return(View);
        }