コード例 #1
0
 public Synchronizer(
     IReadOnlyEntityRepository <TAtypeEntity, TAtypeEntityId, TAtypeEntityVersion, TContext> atypeRepository,
     IReadOnlyEntityRepository <TBtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TContext> btypeRepository,
     IBatchWriteOnlyEntityRepository <TAtypeEntity, TAtypeEntityId, TAtypeEntityVersion, TContext> atypeWriteRepository,
     IBatchWriteOnlyEntityRepository <TBtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TContext> btypeWriteRepository,
     IInitialSyncStateCreationStrategy <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity> initialSyncStateCreationStrategy,
     IEntityRelationDataAccess <TAtypeEntityId, TAtypeEntityVersion, TBtypeEntityId, TBtypeEntityVersion> entityRelationDataAccess,
     IEntityRelationDataFactory <TAtypeEntityId, TAtypeEntityVersion, TBtypeEntityId, TBtypeEntityVersion> entityRelationDataFactory,
     IInitialEntityMatcher <TAtypeEntity, TAtypeEntityId, TAtypeEntityVersion, TBtypeEntity, TBtypeEntityId, TBtypeEntityVersion> initialEntityMatcher,
     IEqualityComparer <TAtypeEntityId> atypeIdComparer, IEqualityComparer <TBtypeEntityId> btypeIdComparer,
     ITotalProgressFactory totalProgressFactory,
     IExceptionLogger exceptionLogger,
     ISynchronizationContextFactory <TContext> contextFactory,
     IEqualityComparer <TAtypeEntityVersion> atypeVersionComparer,
     IEqualityComparer <TBtypeEntityVersion> btypeVersionComparer)
 {
     _initialSyncStateCreationStrategy = initialSyncStateCreationStrategy;
     _totalProgressFactory             = totalProgressFactory;
     _atypeIdComparer           = atypeIdComparer;
     _btypeIdComparer           = btypeIdComparer;
     _exceptionLogger           = exceptionLogger;
     _contextFactory            = contextFactory;
     _atypeVersionComparer      = atypeVersionComparer;
     _btypeVersionComparer      = btypeVersionComparer;
     _atypeWriteRepository      = atypeWriteRepository;
     _btypeWriteRepository      = btypeWriteRepository;
     _atypeRepository           = atypeRepository;
     _btypeRepository           = btypeRepository;
     _entityRelationDataAccess  = entityRelationDataAccess;
     _entityRelationDataFactory = entityRelationDataFactory;
     _initialEntityMatcher      = initialEntityMatcher;
 }
コード例 #2
0
 public SynchronizerFactory(string applicationDataDirectory, ITotalProgressFactory totalProgressFactory, NameSpace outlookSession)
 {
     _outlookEmailAddress = outlookSession.CurrentUser.Address;
       _applicationDataDirectory = applicationDataDirectory;
       _totalProgressFactory = totalProgressFactory;
       _outlookSession = outlookSession;
 }
コード例 #3
0
 public Synchronizer(
     IReadOnlyEntityRepository <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TContext> atypeRepository,
     IReadOnlyEntityRepository <TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> btypeRepository,
     IBatchWriteOnlyEntityRepository <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TContext> atypeWriteRepository,
     IBatchWriteOnlyEntityRepository <TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> btypeWriteRepository,
     IInitialSyncStateCreationStrategy <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> initialSyncStateCreationStrategy,
     IEntityRelationDataAccess <TAtypeEntityId, TAtypeEntityVersion, TBtypeEntityId, TBtypeEntityVersion> entityRelationDataAccess,
     IEntityRelationDataFactory <TAtypeEntityId, TAtypeEntityVersion, TBtypeEntityId, TBtypeEntityVersion> entityRelationDataFactory,
     IInitialEntityMatcher <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity> initialEntityMatcher,
     IEqualityComparer <TAtypeEntityId> atypeIdComparer, IEqualityComparer <TBtypeEntityId> btypeIdComparer,
     ITotalProgressFactory totalProgressFactory,
     IEqualityComparer <TAtypeEntityVersion> atypeVersionComparer,
     IEqualityComparer <TBtypeEntityVersion> btypeVersionComparer, IEntitySyncStateFactory <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> syncStateFactory,
     ISynchronizationInterceptorFactory <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> synchronizationInterceptorFactory = null)
 {
     _initialSyncStateCreationStrategy = initialSyncStateCreationStrategy;
     _totalProgressFactory             = totalProgressFactory;
     _atypeIdComparer      = atypeIdComparer;
     _btypeIdComparer      = btypeIdComparer;
     _atypeVersionComparer = atypeVersionComparer;
     _btypeVersionComparer = btypeVersionComparer;
     _syncStateFactory     = syncStateFactory;
     _synchronizationInterceptorFactory = synchronizationInterceptorFactory ?? NullSynchronizationInterceptorFactory <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> .Instance;
     _atypeWriteRepository      = atypeWriteRepository;
     _btypeWriteRepository      = btypeWriteRepository;
     _atypeRepository           = atypeRepository;
     _btypeRepository           = btypeRepository;
     _entityRelationDataAccess  = entityRelationDataAccess;
     _entityRelationDataFactory = entityRelationDataFactory;
     _initialEntityMatcher      = initialEntityMatcher;
 }
コード例 #4
0
 public SynchronizerFactory(string applicationDataDirectory, ITotalProgressFactory totalProgressFactory, NameSpace outlookSession)
 {
     _outlookEmailAddress      = outlookSession.CurrentUser.Address;
     _applicationDataDirectory = applicationDataDirectory;
     _totalProgressFactory     = totalProgressFactory;
     _outlookSession           = outlookSession;
 }
コード例 #5
0
 public SynchronizerFactory(
     Func <Guid, string> profileDataDirectoryFactory,
     ITotalProgressFactory totalProgressFactory,
     NameSpace outlookSession,
     TimeSpan calDavConnectTimeout)
 {
     _outlookEmailAddress         = outlookSession.CurrentUser.Address;
     _totalProgressFactory        = totalProgressFactory;
     _outlookSession              = outlookSession;
     _calDavConnectTimeout        = calDavConnectTimeout;
     _profileDataDirectoryFactory = profileDataDirectoryFactory;
 }
コード例 #6
0
 public SynchronizerFactory(
     string applicationDataDirectory,
     ITotalProgressFactory totalProgressFactory,
     NameSpace outlookSession,
     TimeSpan calDavConnectTimeout,
     TimeSpan calDavReadWriteTimeout)
 {
     _outlookEmailAddress      = outlookSession.CurrentUser.Address;
     _applicationDataDirectory = applicationDataDirectory;
     _totalProgressFactory     = totalProgressFactory;
     _outlookSession           = outlookSession;
     _calDavConnectTimeout     = calDavConnectTimeout;
     _calDavReadWriteTimeout   = calDavReadWriteTimeout;
 }
コード例 #7
0
 public SynchronizerFactory (
     Func<Guid, string> profileDataDirectoryFactory,
     ITotalProgressFactory totalProgressFactory,
     NameSpace outlookSession,
     TimeSpan calDavConnectTimeout,
     TimeSpan calDavReadWriteTimeout)
 {
   _outlookEmailAddress = outlookSession.CurrentUser.Address;
   _totalProgressFactory = totalProgressFactory;
   _outlookSession = outlookSession;
   _calDavConnectTimeout = calDavConnectTimeout;
   _calDavReadWriteTimeout = calDavReadWriteTimeout;
   _profileDataDirectoryFactory = profileDataDirectoryFactory;
 }
コード例 #8
0
 public SynchronizerFactory (
     string applicationDataDirectory,
     ITotalProgressFactory totalProgressFactory,
     NameSpace outlookSession,
     TimeSpan calDavConnectTimeout,
     TimeSpan calDavReadWriteTimeout)
 {
   _outlookEmailAddress = outlookSession.CurrentUser.Address;
   _applicationDataDirectory = applicationDataDirectory;
   _totalProgressFactory = totalProgressFactory;
   _outlookSession = outlookSession;
   _calDavConnectTimeout = calDavConnectTimeout;
   _calDavReadWriteTimeout = calDavReadWriteTimeout;
 }
コード例 #9
0
 public Synchronizer(
     ISynchronizerContext <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity> synchronizerContext,
     IInitialSyncStateCreationStrategy <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity> initialSyncStateCreationStrategy,
     ITotalProgressFactory totalProgressFactory,
     IEqualityComparer <TAtypeEntityId> atypeIdComparer,
     IEqualityComparer <TBtypeEntityId> btypeIdComparer, IExceptionLogger exceptionLogger)
 {
     _synchronizerContext = synchronizerContext;
     _initialSyncStateCreationStrategy = initialSyncStateCreationStrategy;
     _totalProgressFactory             = totalProgressFactory;
     _atypeIdComparer = atypeIdComparer;
     _btypeIdComparer = btypeIdComparer;
     _exceptionLogger = exceptionLogger;
 }
コード例 #10
0
        public SynchronizerFactory(
            Func <Guid, string> profileDataDirectoryFactory,
            ITotalProgressFactory totalProgressFactory,
            NameSpace outlookSession,
            TimeSpan calDavConnectTimeout,
            IDaslFilterProvider daslFilterProvider,
            IOutlookAccountPasswordProvider outlookAccountPasswordProvider)
        {
            if (outlookAccountPasswordProvider == null)
            {
                throw new ArgumentNullException(nameof(outlookAccountPasswordProvider));
            }

            _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;
            _calDavConnectTimeout           = calDavConnectTimeout;
            _daslFilterProvider             = daslFilterProvider;
            _outlookAccountPasswordProvider = outlookAccountPasswordProvider;
            _profileDataDirectoryFactory    = profileDataDirectoryFactory;
        }
コード例 #11
0
        public SynchronizerFactory(
            Func <Guid, string> profileDataDirectoryFactory,
            ITotalProgressFactory totalProgressFactory,
            NameSpace outlookSession,
            TimeSpan calDavConnectTimeout,
            IDaslFilterProvider daslFilterProvider,
            IOutlookAccountPasswordProvider outlookAccountPasswordProvider)
        {
            if (outlookAccountPasswordProvider == null)
            {
                throw new ArgumentNullException(nameof(outlookAccountPasswordProvider));
            }

            _outlookEmailAddress            = outlookSession.CurrentUser.Address;
            _totalProgressFactory           = totalProgressFactory;
            _outlookSession                 = outlookSession;
            _calDavConnectTimeout           = calDavConnectTimeout;
            _daslFilterProvider             = daslFilterProvider;
            _outlookAccountPasswordProvider = outlookAccountPasswordProvider;
            _profileDataDirectoryFactory    = profileDataDirectoryFactory;
        }
コード例 #12
0
        public Synchronizer(
            IReadOnlyEntityRepository <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TContext> atypeRepository,
            IReadOnlyEntityRepository <TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> btypeRepository,
            IBatchWriteOnlyEntityRepository <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TContext> atypeWriteRepository,
            IBatchWriteOnlyEntityRepository <TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> btypeWriteRepository,
            IInitialSyncStateCreationStrategy <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> initialSyncStateCreationStrategy,
            IEntityRelationDataAccess <TAtypeEntityId, TAtypeEntityVersion, TBtypeEntityId, TBtypeEntityVersion> entityRelationDataAccess,
            IEntityRelationDataFactory <TAtypeEntityId, TAtypeEntityVersion, TBtypeEntityId, TBtypeEntityVersion> entityRelationDataFactory,
            IInitialEntityMatcher <TAtypeEntityId, TAtypeEntityVersion, TAMatchData, TBtypeEntityId, TBtypeEntityVersion, TBMatchData> initialEntityMatcher,
            IEqualityComparer <TAtypeEntityId> atypeIdComparer, IEqualityComparer <TBtypeEntityId> btypeIdComparer,
            ITotalProgressFactory totalProgressFactory,
            IEqualityComparer <TAtypeEntityVersion> atypeVersionComparer,
            IEqualityComparer <TBtypeEntityVersion> btypeVersionComparer, IEntitySyncStateFactory <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> syncStateFactory,
            IExceptionHandlingStrategy exceptionHandlingStrategy,
            IMatchDataFactory <TAtypeEntity, TAMatchData> aMatchDataFactory,
            IMatchDataFactory <TBtypeEntity, TBMatchData> bMatchDataFactory,
            int?chunkSize,
            IChunkedExecutor chunkedExecutor,
            IFullEntitySynchronizationLoggerFactory <TAtypeEntity, TBtypeEntity> fullEntitySynchronizationLoggerFactory,
            IStateAwareEntityRepository <TAtypeEntityId, TAtypeEntityVersion, TContext, TAtypeStateToken> atypeStateAwareEntityRepository,
            IStateAwareEntityRepository <TBtypeEntityId, TBtypeEntityVersion, TContext, TBtypeStateToken> btypeStateAwareEntityRepository,
            IStateTokenDataAccess <TAtypeStateToken, TBtypeStateToken> stateTokenDataAccess,
            ISynchronizationInterceptorFactory <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> synchronizationInterceptorFactoryOrNull = null)
        {
            if (atypeRepository == null)
            {
                throw new ArgumentNullException(nameof(atypeRepository));
            }
            if (btypeRepository == null)
            {
                throw new ArgumentNullException(nameof(btypeRepository));
            }
            if (atypeWriteRepository == null)
            {
                throw new ArgumentNullException(nameof(atypeWriteRepository));
            }
            if (btypeWriteRepository == null)
            {
                throw new ArgumentNullException(nameof(btypeWriteRepository));
            }
            if (initialSyncStateCreationStrategy == null)
            {
                throw new ArgumentNullException(nameof(initialSyncStateCreationStrategy));
            }
            if (entityRelationDataAccess == null)
            {
                throw new ArgumentNullException(nameof(entityRelationDataAccess));
            }
            if (entityRelationDataFactory == null)
            {
                throw new ArgumentNullException(nameof(entityRelationDataFactory));
            }
            if (initialEntityMatcher == null)
            {
                throw new ArgumentNullException(nameof(initialEntityMatcher));
            }
            if (atypeIdComparer == null)
            {
                throw new ArgumentNullException(nameof(atypeIdComparer));
            }
            if (btypeIdComparer == null)
            {
                throw new ArgumentNullException(nameof(btypeIdComparer));
            }
            if (totalProgressFactory == null)
            {
                throw new ArgumentNullException(nameof(totalProgressFactory));
            }
            if (atypeVersionComparer == null)
            {
                throw new ArgumentNullException(nameof(atypeVersionComparer));
            }
            if (btypeVersionComparer == null)
            {
                throw new ArgumentNullException(nameof(btypeVersionComparer));
            }
            if (syncStateFactory == null)
            {
                throw new ArgumentNullException(nameof(syncStateFactory));
            }
            if (exceptionHandlingStrategy == null)
            {
                throw new ArgumentNullException(nameof(exceptionHandlingStrategy));
            }
            if (aMatchDataFactory == null)
            {
                throw new ArgumentNullException(nameof(aMatchDataFactory));
            }
            if (bMatchDataFactory == null)
            {
                throw new ArgumentNullException(nameof(bMatchDataFactory));
            }
            if (fullEntitySynchronizationLoggerFactory == null)
            {
                throw new ArgumentNullException(nameof(fullEntitySynchronizationLoggerFactory));
            }
            if (atypeStateAwareEntityRepository == null)
            {
                throw new ArgumentNullException(nameof(atypeStateAwareEntityRepository));
            }
            if (btypeStateAwareEntityRepository == null)
            {
                throw new ArgumentNullException(nameof(btypeStateAwareEntityRepository));
            }
            if (stateTokenDataAccess == null)
            {
                throw new ArgumentNullException(nameof(stateTokenDataAccess));
            }

            _chunkSize       = chunkSize;
            _chunkedExecutor = chunkedExecutor;
            _fullEntitySynchronizationLoggerFactory = fullEntitySynchronizationLoggerFactory;
            _atypeStateAwareEntityRepository        = atypeStateAwareEntityRepository;
            _btypeStateAwareEntityRepository        = btypeStateAwareEntityRepository;
            _stateTokenDataAccess = stateTokenDataAccess;

            _initialSyncStateCreationStrategy = initialSyncStateCreationStrategy;
            _totalProgressFactory             = totalProgressFactory;
            _atypeIdComparer                   = atypeIdComparer;
            _btypeIdComparer                   = btypeIdComparer;
            _atypeVersionComparer              = atypeVersionComparer;
            _btypeVersionComparer              = btypeVersionComparer;
            _syncStateFactory                  = syncStateFactory;
            _exceptionHandlingStrategy         = exceptionHandlingStrategy;
            _aMatchDataFactory                 = aMatchDataFactory;
            _bMatchDataFactory                 = bMatchDataFactory;
            _synchronizationInterceptorFactory = synchronizationInterceptorFactoryOrNull ?? NullSynchronizationInterceptorFactory <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext> .Instance;
            _atypeWriteRepository              = atypeWriteRepository;
            _btypeWriteRepository              = btypeWriteRepository;
            _atypeRepository                   = atypeRepository;
            _btypeRepository                   = btypeRepository;
            _entityRelationDataAccess          = entityRelationDataAccess;
            _entityRelationDataFactory         = entityRelationDataFactory;
            _initialEntityMatcher              = initialEntityMatcher;
            _entitySyncStateChunkCreator       = new EntitySyncStateChunkCreator <TAtypeEntityId, TAtypeEntityVersion, TAtypeEntity, TBtypeEntityId, TBtypeEntityVersion, TBtypeEntity, TContext>(chunkSize);
        }