public async Task Publish(IApprenticeshipEventsList events)
        {
            var apiEvents = events.Events.Select(x => CreateEvent(x.Commitment, x.Apprenticeship, x.Event, x.EffectiveFrom, x.EffectiveTo, x.PriceHistory));
            await _eventsApi.BulkCreateApprenticeshipEvent(apiEvents.ToList());

            events.Clear();
        }
Ejemplo n.º 2
0
        public async Task Publish(IApprenticeshipEventsList events)
        {
            _logger.Info($"Publishing {events.Events.Count} events");
            var apiEvents = events.Events.Select(x => CreateEvent(x.Commitment, x.Apprenticeship, x.Event, x.EffectiveFrom, x.EffectiveTo, x.PriceHistory));

            var batches = SplitList(apiEvents.ToList(), _maxBatchSize).ToList();

            if (batches.Count() > 1)
            {
                _logger.Info($"Splitting events into {batches.Count} batches of up to {_maxBatchSize}");
            }

            foreach (var batch in batches)
            {
                _logger.Info($"Calling events api to bulk create {batch.Count} events");
                await _eventsApi.BulkCreateApprenticeshipEvent(batch.ToList());
            }

            events.Clear();
        }