private async Task <ICollection <EsvBook> > RetrieveAllEsvBooks(
            GetEsvBookNamesInAlphabeticalOrderQuery query,
            CancellationToken cancellationToken)
        {
            var allEsvBooks = await esvBibleContext.Books
                              .Include(x => x.Chapters)
                              .SortBy(x => x.Name, query.SortDirection)
                              .ToListAsync(cancellationToken);

            return(allEsvBooks);
        }
        public async Task <ICollection <GetEsvBookNamesInAlphabeticalOrderQueryResultDTO> > Handle(
            GetEsvBookNamesInAlphabeticalOrderQuery request,
            CancellationToken cancellationToken)
        {
            var esvBooks = await RetrieveAllEsvBooks(request, cancellationToken);

            var mappedEsvBooks = esvBooks
                                 .Select(x => x.ToABCOrderResultDTO())
                                 .ToList();

            return(mappedEsvBooks);
        }