Пример #1
0
        public IActionResult Delete(int id)
        {
            Reader reader = _readerRepository.GetById(id);

            if (reader != null)
            {
                _readerRepository.Delete(reader);
            }

            return(RedirectToAction("List"));
        }
Пример #2
0
        public void Delete(int id)
        {
            if (id == null)
            {
                throw new ArgumentNullException(nameof(id));
            }

            var reader = _readerRepository.GetById(id);

            if (reader is null)
            {
                throw new Exception("Reader not found");
            }

            _readerRepository.Update(reader);
        }
Пример #3
0
        public async Task GetMyBooksTest()
        {
            var user  = readerRepository.GetById(1);
            var books = await bookService.GetAvailableBooks();

            foreach (var book in books)
            {
                bookService.GiveBook(book.Id, user.Id);
            }
            user = readerRepository.GetById(1);
            Assert.AreEqual(books.Count(), user.Books.Count);

            bookService.AcceptBook(1, user.Id);
            books = readerService.GetTakenBooks(user.Id);
            Assert.AreEqual(1, books.Count());
        }
Пример #4
0
        public void AcceptBook(int bookId, int userId)
        {
            var book = _bookRepository.GetById(bookId);

            if (book == null)
            {
                throw new NotFoundException(nameof(Book));
            }

            var user = _readerRepository.GetById(userId);

            if (user == null)
            {
                throw new NotFoundException(nameof(Reader));
            }

            _readerRepository.DeleteBook(user, book);
            book.Available++;
            _bookRepository.Update(book);
        }
Пример #5
0
        public IActionResult MyBooks(int id)
        {
            var reader = _readerRepository.GetById(id);

            if (reader == null)
            {
                return(NotFound());
            }
            var takenBooks = _readerService.GetTakenBooks(id);

            return(View(_mapper.Map <IEnumerable <BookViewModel> >(takenBooks)));
        }
Пример #6
0
        public void GiveBookTest()
        {
            var user = readerRepository.GetById(1);

            Assert.NotNull(user);
            Assert.Zero(user.Books.Count);
            var book = bookRepository.GetById(1);

            Assert.NotNull(book);
            Assert.Zero(book.Readers.Count);

            int availableBefore = book.Available;

            Assert.DoesNotThrow(() => bookService.GiveBook(book.Id, user.Id));
            Assert.Throws(typeof(AlreadyHasBookException), () => bookService.GiveBook(book.Id, user.Id));
            book = bookRepository.GetById(book.Id);
            Assert.AreEqual(availableBefore - 1, book.Available);
            Assert.AreEqual(1, book.Readers.Count);

            user = readerRepository.GetById(user.Id);
            Assert.AreEqual(1, user.Books.Count);
        }
Пример #7
0
        public ReaderViewModel GetReaderById(Guid id)
        {
            var readerVm = _mapper.Map <ReaderViewModel>(_readerRepository.GetById(id));

            return(readerVm);
        }
Пример #8
0
        public IEnumerable <Book> GetTakenBooks(int userId)
        {
            var reader = _repository.GetById(userId);

            return(reader.Books.Select(br => br.Book).ToList());
        }