Ejemplo n.º 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();
    }
        public static ISubOptionsViewModel CoerceMappingConfiguration(
            ISubOptionsViewModel currentMappingConfiguration,
            OlItemType?outlookFolderType,
            bool isGoogleProfile,
            IMappingConfigurationViewModelFactory factory)
        {
            switch (outlookFolderType)
            {
            case OlItemType.olAppointmentItem:
                return(currentMappingConfiguration as EventMappingConfigurationViewModel ?? factory.Create(new EventMappingConfiguration()));

            case OlItemType.olContactItem:
                return(currentMappingConfiguration as ContactMappingConfigurationViewModel ?? factory.Create(new ContactMappingConfiguration()));

            case OlItemType.olTaskItem:
                return(isGoogleProfile
              ? null
              : currentMappingConfiguration as TaskMappingConfigurationViewModel ?? factory.Create(new TaskMappingConfiguration()));

            default:
                return(currentMappingConfiguration);
            }
        }
 public override ISubOptionsViewModel CreateConfigurationViewModel(IMappingConfigurationViewModelFactory factory)
 {
     return(factory.Create(this));
 }
 public override ISubOptionsViewModel CreateConfigurationViewModel (IMappingConfigurationViewModelFactory factory)
 {
   return factory.Create (this);
 }
 public abstract ISubOptionsViewModel CreateConfigurationViewModel(IMappingConfigurationViewModelFactory factory);
 public abstract ISubOptionsViewModel CreateConfigurationViewModel (IMappingConfigurationViewModelFactory factory);