public async Task <IActionResult> Scrape()
        {
            var shows = await _scrapeService.GetShowsAsync(0);

            while (shows.Count > 0)
            {
                foreach (var show in shows)
                {
                    await _showRepository.CreateIfNotExistsAsync(show);

                    await _showRepository.SaveAsync();

                    foreach (var person in show.Cast)
                    {
                        await _personRepository.CreateIfNotExistsAsync(person);
                    }
                    await _personRepository.SaveAsync();
                }

                var nextPage = (await _showRepository.GetLastShowAsync())?.ShowId ?? 0 / 250;
                shows = await _scrapeService.GetShowsAsync(nextPage);
            }

            return(Ok());
        }
        protected override async Task Handle(ScrapeHandler request, CancellationToken cancellationToken)
        {
            var pageNumber = await GetNextPageNumber();

            var tvShows = await _scrapeService.GetShowsAsync(pageNumber);

            while (tvShows.Count > 0)
            {
                foreach (var show in tvShows)
                {
                    await _showRepository.CreateIfNotExistsAsync(show);
                }

                await _showRepository.SaveAsync();

                var nextPage = await GetNextPageNumber();

                tvShows = await _scrapeService.GetShowsAsync(nextPage);
            }
        }