public async Task <int> CreateBookAsync(string title, string description, decimal price, int copies, int?edition, int authorId, List <string> categories)
        {
            if (await authorRepository.ExistsAsync(authorId))
            {
                var book = new Book
                {
                    Title       = title,
                    Description = description,
                    Price       = price,
                    Copies      = copies,
                    Edition     = edition,
                    AuthorId    = authorId
                };

                await bookRepository.CreateAsync(book);

                await categoryRepository.AddCategoriesToBookAsync(book, categories);

                return(book.Id);
            }
            return(0);
        }