Exemple #1
0
        protected override async Task HandleCommandAsync(AddBookParameters input, CommandResult <AddBookResult> commandResult)
        {
            // try to find book by isbn
            var book = await _bookRepo.FindAsync(input.Isbn);

            if (book != null)
            {
                if (!validateBookAttributes(book, input))
                {
                    commandResult.Fail();
                    return;
                }
            }
            else
            {
                // create new book
                book = Book.Create(input.Isbn, input.Title, input.Description, input.AuthorFirstName,
                                   input.AuthorLastName);
            }

            var library = new MyLibrary(input.UserId);

            var mybook = library.AddBook(book, null);

            await _bookRepo.SaveAsync(book);

            await _mybookRepo.SaveAsync(mybook);

            commandResult.Success(new AddBookResult(input.Isbn));
        }