Inheritance: ObservableModel
        /// <summary>
        /// Loads the settings.
        /// </summary>
        /// <returns>Returns the settings.</returns>
        public Settings LoadSettings()
        {
            Settings settings = null;

            try
            {
                if (File.Exists(_settingsFilename))
                {
                    settings = _settingsDataAccess.LoadSettings(_settingsFilename);
                }
            }
            catch (SerializationException)
            {
                Console.WriteLine();
            }
            finally
            {
                if (settings == null)
                {
                    settings = new Settings();
                    SaveSettings(settings);
                }
            }

            return settings;
        }
        /// <summary>
        /// Initializes this class.
        /// </summary>
        /// <param name="settings">The application settings.</param>
        public void Initialize(Settings settings)
        {
            _settings = settings;
            _settings.PropertyChanged += SettingsPropertyChanged;
            InitializeDownloadManagerAsync();

            if (_settings.UpdateVideosPeriodically)
            {
                StartUpdateTimer();
            }
        }
 /// <summary>
 /// Saves the settings.
 /// </summary>
 /// <param name="settings">The settings to save.</param>
 public void SaveSettings(Settings settings)
 {
     try
     {
         _settingsDataAccess.SaveSettings(settings, _settingsFilename);
     }
     catch (SerializationException)
     {
         Console.WriteLine();
     }
 }
        public SettingsVM(Settings settings)
        {
            Settings = settings;

            DisplayName = "Settings";
        }
        /// <summary>
        /// Initializes this class.
        /// </summary>
        /// <param name="settings">The application settings.</param>
        public void Initialize(Settings settings)
        {
            _settings = settings;
            _settings.PropertyChanged += SettingsPropertyChanged;

            UpdateAvailableDownloads();

            if (_settings.StartDownloadingWhenApplicationStarts)
            {
                StartDownloads();
            }
        }
 /// <summary>
 /// Initializes the application settings.
 /// </summary>
 private void InitializeSettings()
 {
     _settings = SettingsManager.LoadSettings();
     _composer.ComposeExportedValue(_settings);
 }