public void SetStrategy(IQueryOutlookFolderStrategy strategy) { if (strategy == null) { throw new ArgumentNullException(nameof(strategy)); } _strategy = strategy; }
public SynchronizerFactory(Func <Guid, string> profileDataDirectoryFactory, ITotalProgressFactory totalProgressFactory, NameSpace outlookSession, IDaslFilterProvider daslFilterProvider, IOutlookAccountPasswordProvider outlookAccountPasswordProvider, GlobalTimeZoneCache globalTimeZoneCache, IQueryOutlookFolderStrategy queryFolderStrategy) { if (outlookAccountPasswordProvider == null) { throw new ArgumentNullException(nameof(outlookAccountPasswordProvider)); } if (queryFolderStrategy == null) { throw new ArgumentNullException(nameof(queryFolderStrategy)); } _outlookEmailAddress = string.Empty; try { using (var currentUser = GenericComObjectWrapper.Create(outlookSession.CurrentUser)) { if (currentUser.Inner != null) { using (var addressEntry = GenericComObjectWrapper.Create(currentUser.Inner.AddressEntry)) { if (addressEntry.Inner != null) { _outlookEmailAddress = OutlookUtility.GetEmailAdressOrNull(addressEntry.Inner, NullEntitySynchronizationLogger.Instance, s_logger) ?? string.Empty; } } } } } catch (COMException ex) { s_logger.Error("Can't access currentuser email adress.", ex); } _totalProgressFactory = totalProgressFactory; _outlookSession = outlookSession; _daslFilterProvider = daslFilterProvider; _outlookAccountPasswordProvider = outlookAccountPasswordProvider; _profileDataDirectoryFactory = profileDataDirectoryFactory; _globalTimeZoneCache = globalTimeZoneCache; _queryFolderStrategy = queryFolderStrategy; }