private ISynchronizer CreateTaskSynchronizer(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 TaskSynchronizationContext(
                _outlookSession,
                storageDataAccess,
                options,
                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, TaskItemWrapper, Uri, string, IICalendar> (
                synchronizationContext.EntityMapper,
                synchronizationContext.AtypeRepository,
                synchronizationContext.BtypeRepository,
                synchronizationContext.EntityRelationDataFactory,
                ExceptionHandler.Instance);

            return(new Synchronizer <string, DateTime, TaskItemWrapper, Uri, string, IICalendar> (
                       synchronizationContext,
                       InitialTaskSyncStateCreationStrategyFactory.Create(
                           syncStateFactory,
                           syncStateFactory.Environment,
                           options.SynchronizationMode,
                           options.ConflictResolution),
                       _totalProgressFactory,
                       atypeIdComparer,
                       btypeIdEqualityComparer,
                       ExceptionHandler.Instance));
        }
        private ISynchronizer CreateTaskSynchronizer(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 TaskSynchronizationContext (
              _outlookSession,
              storageDataAccess,
              options,
              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, TaskItemWrapper, Uri, string, IICalendar> (
              synchronizationContext.EntityMapper,
              synchronizationContext.AtypeRepository,
              synchronizationContext.BtypeRepository,
              synchronizationContext.EntityRelationDataFactory,
              ExceptionHandler.Instance);

              return new Synchronizer<string, DateTime, TaskItemWrapper, Uri, string, IICalendar> (
              synchronizationContext,
              InitialTaskSyncStateCreationStrategyFactory.Create (
              syncStateFactory,
              syncStateFactory.Environment,
              options.SynchronizationMode,
              options.ConflictResolution),
              _totalProgressFactory,
              atypeIdComparer,
              btypeIdEqualityComparer,
              ExceptionHandler.Instance);
        }