Inheritance: ViewModelBase, IOptionsSection
Exemple #1
0
        public GenericOptionsViewModel(
            NameSpace session,
            IOptionsViewModelParent parent,
            bool fixInvalidSettings,
            IOutlookAccountPasswordProvider outlookAccountPasswordProvider,
            Func <ISettingsFaultFinder, ICurrentOptions, IServerSettingsViewModel> serverSettingsViewModelFactory,
            Func <ICurrentOptions, IMappingConfigurationViewModelFactory> mappingConfigurationViewModelFactoryFactory)
            : base(parent)
        {
            if (session == null)
            {
                throw new ArgumentNullException(nameof(session));
            }
            if (outlookAccountPasswordProvider == null)
            {
                throw new ArgumentNullException(nameof(outlookAccountPasswordProvider));
            }
            if (mappingConfigurationViewModelFactoryFactory == null)
            {
                throw new ArgumentNullException(nameof(mappingConfigurationViewModelFactoryFactory));
            }

            _syncSettingsViewModel    = new SyncSettingsViewModel();
            _networkSettingsViewModel = new NetworkSettingsViewModel();

            var faultFinder = fixInvalidSettings ? new SettingsFaultFinder(this) : NullSettingsFaultFinder.Instance;

            _serverSettingsViewModel              = serverSettingsViewModelFactory(faultFinder, this);
            _outlookAccountPasswordProvider       = outlookAccountPasswordProvider;
            _mappingConfigurationViewModelFactory = mappingConfigurationViewModelFactoryFactory(this);
            _outlookFolderViewModel = new OutlookFolderViewModel(session, faultFinder);
            _outlookFolderViewModel.PropertyChanged += OutlookFolderViewModel_PropertyChanged;
            _timeRangeViewModel = new TimeRangeViewModel();
        }
    public GenericOptionsViewModel (
      IOptionsViewModelParent parent,
      GeneralOptions generalOptions,
      IOutlookAccountPasswordProvider outlookAccountPasswordProvider,
      Func<ISettingsFaultFinder, ICurrentOptions, IServerSettingsViewModel> serverSettingsViewModelFactory,
      Func<ICurrentOptions, IMappingConfigurationViewModelFactory> mappingConfigurationViewModelFactoryFactory,
      IOptionTasks optionTasks)
        : base (parent)
    {
      if (generalOptions == null)
        throw new ArgumentNullException (nameof (generalOptions));
      if (outlookAccountPasswordProvider == null)
        throw new ArgumentNullException (nameof (outlookAccountPasswordProvider));
      if (mappingConfigurationViewModelFactoryFactory == null)
        throw new ArgumentNullException (nameof (mappingConfigurationViewModelFactoryFactory));

      _syncSettingsViewModel = new SyncSettingsViewModel();
      _networkSettingsViewModel = new NetworkSettingsViewModel();

      var faultFinder = generalOptions.FixInvalidSettings ? new SettingsFaultFinder (this) : NullSettingsFaultFinder.Instance;
      _serverSettingsViewModel = serverSettingsViewModelFactory (faultFinder, this);
      _generalOptions = generalOptions;
      _outlookAccountPasswordProvider = outlookAccountPasswordProvider;
      _mappingConfigurationViewModelFactory = mappingConfigurationViewModelFactoryFactory(this);
      _outlookFolderViewModel = new OutlookFolderViewModel (faultFinder, optionTasks);
      _outlookFolderViewModel.PropertyChanged += OutlookFolderViewModel_PropertyChanged;
      _timeRangeViewModel = new TimeRangeViewModel();
    }
Exemple #3
0
        public GenericOptionsViewModel(
            IOptionsViewModelParent parent,
            IOptionsSection serverSettingsViewModel,
            IOptionTasks optionTasks,
            OptionsModel model,
            IReadOnlyList <string> availableCategories,
            IViewOptions viewOptions)
            : base(viewOptions, model)
        {
            if (parent == null)
            {
                throw new ArgumentNullException(nameof(parent));
            }
            if (serverSettingsViewModel == null)
            {
                throw new ArgumentNullException(nameof(serverSettingsViewModel));
            }
            if (optionTasks == null)
            {
                throw new ArgumentNullException(nameof(optionTasks));
            }
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            if (availableCategories == null)
            {
                throw new ArgumentNullException(nameof(availableCategories));
            }


            Model = model;
            _availableCategories = availableCategories;

            _syncSettingsViewModel    = new SyncSettingsViewModel(model, viewOptions);
            _networkSettingsViewModel = new NetworkSettingsViewModel(model);

            _serverSettingsViewModel = serverSettingsViewModel;
            _outlookFolderViewModel  = new OutlookFolderViewModel(model, optionTasks, viewOptions);
            _timeRangeViewModel      = new TimeRangeViewModel(model, viewOptions);

            RegisterPropertyChangeHandler(model, nameof(model.MappingConfigurationModelOrNull), UpdateMappingConfigurationViewModel);

            RegisterPropertyChangePropagation(model, nameof(model.SelectedFolderOrNull), nameof(OutlookFolderType));
        }