public async Task <long> Handle(BookReservationCommand request, CancellationToken cancellationToken) { ReservedBook entity = new ReservedBook { Id = request.bookId, AssignedUserId = request.userId }; await _dbContext.ReservedBookss.AddAsync(entity, cancellationToken); await _dbContext.SaveChangesAsync(cancellationToken); return(entity.Id); }
public virtual BorrowedBook borrow(ReservedBook reservedBook) { if (hasUserNotReachedLimitOfBooks()) { BorrowedBook borrowedBook = new BorrowedBook() { Id = reservedBook.Id, UserId = reservedBook.AssignedUserId }; borrowedBooks.Add(borrowedBook); return(borrowedBook); } else { throw new TooManyBooksAssignedToUserException(id); } }
public virtual ReservedBook reserve(AvailableBook availableBook) { if (hasUserNotReachedLimitOfBooks()) { ReservedBook reservedBook = new ReservedBook() { Id = availableBook.Id, AssignedUserId = availableBook.UserId }; reservedBooks.Add(reservedBook); return(reservedBook); } else { throw new TooManyBooksAssignedToUserException(id); } }