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(); }
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(); }