Beispiel #1
0
        public SettingsViewModel(ITailProviderService service, ITailSettingService settingsService, GeneralSettingsViewModel generalSettings)
        {
            _settingsService = settingsService;
            _viewModels      = new Dictionary <Type, ITailSettings>();
            _providers       = new List <TailProviderInfo>();

            var types = service.GetProviderTypes();

            foreach (var type in types)
            {
                var viewModel = service.CreateSettings(type);
                if (viewModel != null)
                {
                    var displayName = service.GetDisplayName(type);
                    if (!string.IsNullOrWhiteSpace(displayName))
                    {
                        // Load the settings for the view model.
                        viewModel.Load(_settingsService);

                        // Add the settings to the collection.
                        _viewModels.Add(viewModel.GetType(), viewModel);
                        _providers.Add(new TailProviderInfo(displayName, viewModel.GetType()));
                    }
                }
            }

            // Sort all providers by name.
            _providers = _providers.OrderBy(x => x.Name).ToList();

            // Insert the general settings.
            _viewModels.Add(typeof(GeneralSettingsViewModel), generalSettings);
            _providers.Insert(0, new TailProviderInfo("General", typeof(GeneralSettingsViewModel)));

            // Select the first provider in the list.
            if (_providers.Count > 0)
            {
                SelectedProvider = Providers[0];
                ToggleProvider(Providers[0]);
            }

            DisplayName = "Settings";
        }
        public StreamConfigurationViewModel(ITailProviderService providerService, IEventAggregator eventAggregator)
        {
            _providerService = providerService;
            _eventAggregator = eventAggregator;
            _viewModels      = new Dictionary <Type, ITailConfiguration>();

            // Create the provider information.
            var providers = new List <TailProviderInfo>();

            foreach (var type in providerService.GetProviderTypes())
            {
                var name = _providerService.GetDisplayName(type);
                if (string.IsNullOrWhiteSpace(name))
                {
                    continue;
                }

                var viewModel = _providerService.CreateConfigurationViewModel(type);
                if (viewModel != null)
                {
                    _viewModels.Add(type, viewModel);
                }

                providers.Add(new TailProviderInfo(name, type));
            }

            // Sort all providers by name.
            _providers = new List <TailProviderInfo>(providers.OrderBy(p => p.Name));

            // Select the first provider in the list.
            if (_providers.Count > 0)
            {
                SelectedProvider = Providers[0];
                ToggleProvider(Providers[0]);
            }

            // Set the display name.
            DisplayName = "Open Stream";
        }