public void SetStrategy(IQueryOutlookFolderStrategy strategy)
 {
     if (strategy == null)
     {
         throw new ArgumentNullException(nameof(strategy));
     }
     _strategy = strategy;
 }
예제 #2
0
        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;
        }