CalDavSynchronizer.Scheduling.Scheduler.SetOptions C# (CSharp) Метод

SetOptions() публичный Метод

public SetOptions ( CalDavSynchronizer.Contracts.Options options, GeneralOptions generalOptions ) : System.Threading.Tasks.Task
options CalDavSynchronizer.Contracts.Options
generalOptions CalDavSynchronizer.Contracts.GeneralOptions
Результат System.Threading.Tasks.Task
    public async Task SetOptions (Options[] options, GeneralOptions generalOptions)
    {
      if (options == null)
        throw new ArgumentNullException (nameof (options));
      if (generalOptions == null)
        throw new ArgumentNullException (nameof (generalOptions));

      Dictionary<Guid, SynchronizationProfileRunner> workersById = new Dictionary<Guid, SynchronizationProfileRunner>();
      foreach (var option in options)
      {
        try
        {
          SynchronizationProfileRunner profileRunner;
          if (!_runnersById.TryGetValue (option.Id, out profileRunner))
          {
            profileRunner = new SynchronizationProfileRunner (
                _synchronizerFactory,
                _reportSink,
                _folderChangeWatcherFactory,
                _ensureSynchronizationContext,
                _runLogger);
          }
          await profileRunner.UpdateOptions (option, generalOptions);
          workersById.Add (option.Id, profileRunner);
        }
        catch (Exception x)
        {
          ExceptionHandler.Instance.LogException (x, s_logger);
        }
      }
      _runnersById = workersById;
    }

Usage Example

    public ComponentContainer (Application application)
    {
      try
      {
        XmlConfigurator.Configure();

        _itemChangeWatcher = new OutlookItemChangeWatcher (application.Inspectors);
        _itemChangeWatcher.ItemSavedOrDeleted += ItemChangeWatcherItemSavedOrDeleted;
        _session = application.Session;
        s_logger.Info ("Startup...");

        EnsureSynchronizationContext();

        _applicationDataDirectory = Path.Combine (Environment.GetFolderPath (Environment.SpecialFolder.LocalApplicationData), "CalDavSynchronizer");

        _optionsDataAccess = new OptionsDataAccess (
            Path.Combine (
                _applicationDataDirectory,
                GetOrCreateConfigFileName (_applicationDataDirectory, _session.CurrentProfileName)
                ));

        var synchronizerFactory = new SynchronizerFactory (
            GetProfileDataDirectory,
            new TotalProgressFactory (
                new ProgressFormFactory(),
                int.Parse (ConfigurationManager.AppSettings["loadOperationThresholdForProgressDisplay"]),
                ExceptionHandler.Instance),
            _session,
            TimeSpan.Parse (ConfigurationManager.AppSettings["calDavConnectTimeout"]),
            TimeSpan.Parse (ConfigurationManager.AppSettings["calDavReadWriteTimeout"]));

        _scheduler = new Scheduler (synchronizerFactory, EnsureSynchronizationContext);
        _scheduler.SetOptions (_optionsDataAccess.LoadOptions());

        _updateChecker = new UpdateChecker (new AvailableVersionService(), () => _optionsDataAccess.IgnoreUpdatesTilVersion);
        _updateChecker.NewerVersionFound += UpdateChecker_NewerVersionFound;
        _updateChecker.IsEnabled = _optionsDataAccess.ShouldCheckForNewerVersions;
      }
      catch (Exception x)
      {
        ExceptionHandler.Instance.LogException (x, s_logger);
        throw;
      }

      s_logger.Info ("Startup finnished");
    }
All Usage Examples Of CalDavSynchronizer.Scheduling.Scheduler::SetOptions