public async Task Synchronize(ISynchronizationLogger logger) { var emailAddressCache = new EmailAddressCache(); emailAddressCache.Items = _emailAddressCacheDataAccess.Load(); using (var subLogger = logger.CreateSubLogger("Contacts")) { await _contactSynchronizer.Synchronize(subLogger, emailAddressCache); } var idsToQuery = emailAddressCache.GetIdsOfEntriesWithEmptyEmailAddress(); if (idsToQuery.Length > 0) { await _loggingCardDavRepositoryDecorator.Get(idsToQuery, NullLoadEntityLogger.Instance, emailAddressCache); } var cacheItems = emailAddressCache.Items; _emailAddressCacheDataAccess.Save(cacheItems); var distListContext = new DistributionListSychronizationContext(cacheItems, _outlookSession); using (var subLogger = logger.CreateSubLogger("DistLists")) { await _distributionListSynchronizer.Synchronize(subLogger, distListContext); } }
public async Task SynchronizePartial(IEnumerable <IIdWithHints <string, DateTime> > aIds, IEnumerable <IIdWithHints <WebResourceName, string> > bIds, ISynchronizationLogger logger) { var emailAddressCache = new EmailAddressCache(); emailAddressCache.Items = _emailAddressCacheDataAccess.Load(); using (var subLogger = logger.CreateSubLogger("Contacts")) { await _contactSynchronizer.Synchronize(subLogger, emailAddressCache); } _emailAddressCacheDataAccess.Save(emailAddressCache.Items); }