private ISynchronizer CreateEventSynchronizer(Options options) { var storageDataDirectory = Path.Combine( _applicationDataDirectory, options.Id.ToString() ); var storageDataAccess = new EntityRelationDataAccess <string, DateTime, OutlookEventRelationData, Uri, string> (storageDataDirectory); var btypeIdEqualityComparer = EqualityComparer <Uri> .Default; var atypeIdComparer = EqualityComparer <string> .Default; var synchronizationContext = new EventSynchronizationContext( _outlookSession, storageDataAccess, options, _outlookEmailAddress, TimeSpan.Parse(ConfigurationManager.AppSettings["calDavConnectTimeout"]), TimeSpan.Parse(ConfigurationManager.AppSettings["calDavReadWriteTimeout"]), Boolean.Parse(ConfigurationManager.AppSettings["disableCertificateValidation"]), Boolean.Parse(ConfigurationManager.AppSettings["enableSsl3"]), Boolean.Parse(ConfigurationManager.AppSettings["enableTls12"]), btypeIdEqualityComparer); var syncStateFactory = new EntitySyncStateFactory <string, DateTime, AppointmentItemWrapper, Uri, string, IICalendar> ( synchronizationContext.EntityMapper, synchronizationContext.AtypeRepository, synchronizationContext.BtypeRepository, synchronizationContext.EntityRelationDataFactory, ExceptionHandler.Instance ); return(new Synchronizer <string, DateTime, AppointmentItemWrapper, Uri, string, IICalendar> ( synchronizationContext, InitialEventSyncStateCreationStrategyFactory.Create( syncStateFactory, syncStateFactory.Environment, options.SynchronizationMode, options.ConflictResolution), _totalProgressFactory, atypeIdComparer, btypeIdEqualityComparer, ExceptionHandler.Instance)); }
private ISynchronizer CreateEventSynchronizer(Options options) { var storageDataDirectory = Path.Combine ( _applicationDataDirectory, options.Id.ToString() ); var storageDataAccess = new EntityRelationDataAccess<string, DateTime, OutlookEventRelationData, Uri, string> (storageDataDirectory); var btypeIdEqualityComparer = EqualityComparer<Uri>.Default; var atypeIdComparer = EqualityComparer<string>.Default; var synchronizationContext = new EventSynchronizationContext ( _outlookSession, storageDataAccess, options, _outlookEmailAddress, TimeSpan.Parse (ConfigurationManager.AppSettings["calDavConnectTimeout"]), TimeSpan.Parse (ConfigurationManager.AppSettings["calDavReadWriteTimeout"]), Boolean.Parse (ConfigurationManager.AppSettings["disableCertificateValidation"]), Boolean.Parse (ConfigurationManager.AppSettings["enableSsl3"]), Boolean.Parse (ConfigurationManager.AppSettings["enableTls12"]), btypeIdEqualityComparer); var syncStateFactory = new EntitySyncStateFactory<string, DateTime, AppointmentItemWrapper, Uri, string, IICalendar> ( synchronizationContext.EntityMapper, synchronizationContext.AtypeRepository, synchronizationContext.BtypeRepository, synchronizationContext.EntityRelationDataFactory, ExceptionHandler.Instance ); return new Synchronizer<string, DateTime, AppointmentItemWrapper, Uri, string, IICalendar> ( synchronizationContext, InitialEventSyncStateCreationStrategyFactory.Create ( syncStateFactory, syncStateFactory.Environment, options.SynchronizationMode, options.ConflictResolution), _totalProgressFactory, atypeIdComparer, btypeIdEqualityComparer, ExceptionHandler.Instance); }