public async Task ImportAsync(IEnumerable <ImportRequestModel> importRequests)
        {
            importRequests = importRequests.ToList();
            var shows         = importRequests.Select(request => request.Show).ToList();
            var importResults = new ImportResultModel[importRequests.Count()];

            // Try adding shows within a single transaction
            if (await _showsService.AddShowsAsync(shows))
            {
                _logger.LogInformation(_strings[StringsEnum.START_SHOW_IMPORT_SINGLE_BLOCK]);

                int index = 0;
                foreach (var request in importRequests)
                {
                    importResults[index] = new ImportResultModel(request.Id, true, shows[index].Id);
                    ++index;
                }
            }
            // If failed, try adding one by one
            else
            {
                _logger.LogInformation(_strings[StringsEnum.FAILED_SHOW_IMPORT_SINGLE_BLOCK]);
                _logger.LogInformation(_strings[StringsEnum.START_SHOW_IMPORT_ONE_BY_ONE]);

                int index = 0;
                foreach (var request in importRequests)
                {
                    var importSuccess = await _showsService.AddShowAsync(request.Show);

                    importResults[index] = new ImportResultModel(request.Id, importSuccess, request.Show.Id);
                    ++index;
                }
            }

            _communicationService.EnqueueImportResults(importResults);
        }