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));
        }
Exemple #2
0
 private bool validateBookAttributes(Book book, AddBookParameters input)
 {
     return(book.Title.Equals(input.Title, StringComparison.CurrentCultureIgnoreCase) &&
            book.Author.FirstName.Equals(input.AuthorFirstName, StringComparison.CurrentCultureIgnoreCase) &&
            book.Author.LastName.Equals(input.AuthorLastName, StringComparison.CurrentCultureIgnoreCase));
 }