public ExplorerTopBarViewModel(ExplorerSettingsContainer settings, ITypeFactory typeFactory, IUIVisualizerService uIVisualizerService, INuGetConfigurationService configurationService,
                                       INuGetCacheManager nuGetCacheManager, IPleaseWaitService pleaseWaitService, IMessageService messageService, IMessageMediator messageMediator)
        {
            Argument.IsNotNull(() => typeFactory);
            Argument.IsNotNull(() => uIVisualizerService);
            Argument.IsNotNull(() => configurationService);
            Argument.IsNotNull(() => settings);
            Argument.IsNotNull(() => nuGetCacheManager);
            Argument.IsNotNull(() => pleaseWaitService);
            Argument.IsNotNull(() => messageService);
            Argument.IsNotNull(() => messageMediator);

            _typeFactory          = typeFactory;
            _uIVisualizerService  = uIVisualizerService;
            _configurationService = configurationService;
            _nuGetCacheManager    = nuGetCacheManager;
            _pleaseWaitService    = pleaseWaitService;
            _messageService       = messageService;
            _messageMediator      = messageMediator;

            Settings = settings;

            Title = "Manage NuGet Packages";
            CommandInitialize();
        }
        public PageItemViewModel(NuGetPackage package, IModelProvider <ExplorerSettingsContainer> settingsProvider)
        {
            Argument.IsNotNull(() => package);
            Argument.IsNotNull(() => settingsProvider);

            Package        = package;
            _nugetSettings = settingsProvider.Model;

            //command
            CheckItem = new Command <MouseButtonEventArgs>(CheckItemExecute);
        }
        public NuGetSettingsViewModel(ExplorerSettingsContainer settings, INuGetConfigurationService configurationService, IDefaultPackageSourcesProvider defaultPackageSourcesProvider)
        {
            Argument.IsNotNull(() => defaultPackageSourcesProvider);
            Argument.IsNotNull(() => configurationService);
            Argument.IsNotNull(() => settings);

            _defaultPackageSourcesProvider = defaultPackageSourcesProvider;
            _nuGetConfigurationService     = configurationService;

            Title    = DefaultTitle;
            Settings = settings;

#pragma warning disable IDISP001 // Dispose created.
            var serviceLocator = this.GetServiceLocator();
#pragma warning restore IDISP001 // Dispose created.

            if (serviceLocator.IsTypeRegistered <INuGetConfigurationResetService>())
            {
                CanReset = true;
            }
        }