コード例 #1
0
        public async Task Handle(AddBook message, CancellationToken cancellationToken)
        {
            await CheckAndAddAuthors(message.Book, message.UserId);

            BookEntityHandler.Add(message.Book);

            await Mediator.Send(new SaveChanges());

            await Mediator.Publish(new BookAdded(message.Book, message.UserId));
        }
コード例 #2
0
        public async Task Handle(DeleteBook message, CancellationToken cancellationToken)
        {
            var oldBook = await BookEntityHandler.Get(message.Id);

            if (oldBook == null)
            {
                throw new EntityNotFoundException <Book>(message.Id);
            }

            BookEntityHandler.Delete(oldBook);

            await Mediator.Send(new SaveChanges());

            await Mediator.Publish(new BookRemoved(oldBook, message.UserId));
        }
コード例 #3
0
        public async Task Handle(UpdateBook message, CancellationToken cancellationToken)
        {
            var oldBook = await BookEntityHandler.Get(message.Book.Id);

            if (oldBook == null)
            {
                throw new EntityNotFoundException <Book>(message.Book);
            }

            await CheckAndAddAuthors(message.Book, message.UserId);

            var newBook = oldBook.Update(message.Book, DateTime.UtcNow);

            BookEntityHandler.Update(newBook);

            await Mediator.Send(new SaveChanges());

            await Mediator.Publish(new BookUpdated(newBook, oldBook, message.UserId));
        }
コード例 #4
0
 public async Task <Book> Handle(GetBook request, CancellationToken cancellationToken) =>
 await BookEntityHandler.Get(request.Id);
コード例 #5
0
 public async Task <IEnumerable <Book> > Handle(GetBooks request, CancellationToken cancellationToken) =>
 await BookEntityHandler.Get();