/// <summary>
        /// Saves the user settings.
        /// </summary>
        private void SaveUserSettings()
        {
            CCNetConfigSettings settings = new CCNetConfigSettings();

            settings.Components = new ComponentSettingsList();
            foreach (ListViewItem lvi in this.componentsList.Items)
            {
                settings.Components.Add(new ComponentSettings(string.Format("{0}.{1}", lvi.SubItems[chNamespace.Index].Text, lvi.SubItems[chName.Index].Text), lvi.Checked));
            }

            settings.UpdateSettings.CheckOnStartup = this.updatesCheckAtStartup.Checked;
            if (this.updateTypeCombo.SelectedItem != null)
            {
                settings.UpdateSettings.UpdateCheckType = (UpdateCheckType)this.updateTypeCombo.SelectedItem;
            }

            settings.UpdateSettings.ProxySettings.UseProxy    = this.useProxy.Checked;
            settings.UpdateSettings.ProxySettings.Username    = this.proxyUser.Text.Trim();
            settings.UpdateSettings.ProxySettings.Password    = this.proxyPassword.Text;
            settings.UpdateSettings.ProxySettings.ProxyPort   = (int)this.proxyPort.Value;
            settings.UpdateSettings.ProxySettings.ProxyServer = this.proxyServerAddress.Text.Trim();

            settings.BackupSettings.Enabled  = this.backupWhenSaving.Checked;
            settings.BackupSettings.SavePath = new DirectoryInfo(this.backupSavePath.Text);
            settings.BackupSettings.NumberOfBackupsToKeep = (int)this.backupFilesToKeep.Value;

            settings.ExternalViewer          = this.externalFileViewer.Text.Trim();
            settings.ExternalViewerArguments = this.externalViewerArguments.Text.Trim();
            settings.WatchForFileChanges     = this.generalMonitorForChanges.Checked;

            settings.SortProject = this.sortProjectsAlphabetically.Checked;

            CCNetConfigSettingsConfigurationSectionHandler.SaveSettings(settings);
            CCNetConfig.Core.Util.RefreshUserSettings();
        }
        private void LoadBackupsToListView()
        {
            CCNetConfigSettings settings = CCNetConfig.Core.Util.UserSettings;

            if (this.InvokeRequired)
            {
                this.Invoke(new ListViewGenericHandler(this.ClearListViewItems), new object[] { backupFilesList });
            }
            else
            {
                ClearListViewItems(backupFilesList);
            }

            List <FileInfo> files = new List <FileInfo> ();

            if (settings.BackupSettings.SavePath.Exists)
            {
                files.AddRange(settings.BackupSettings.SavePath.GetFiles());
                foreach (FileInfo file in files)
                {
                    if (this.InvokeRequired)
                    {
                        this.Invoke(new AddBackupFileToListViewHandler(this.AddBackupFileToListView), new object[] { file });
                    }
                    else
                    {
                        this.AddBackupFileToListView(file);
                    }
                }
            }
        }
 /// <summary>
 /// Creates a configuration section handler.
 /// </summary>
 /// <param name="parent">Parent object.</param>
 /// <param name="configContext">Configuration context object.</param>
 /// <param name="stream">The stream.</param>
 /// <returns>The created section handler object.</returns>
 public CCNetConfigSettings Create(object parent, object configContext, Stream stream)
 {
     try {
         CCNetConfigSettings settings = null;
         using ( stream ) {
             XmlSerializer serializer = new XmlSerializer(typeof(CCNetConfigSettings));
             settings = serializer.Deserialize(stream) as CCNetConfigSettings;
         }
         return(settings);
     } catch { throw; }
 }
 /// <summary>
 /// Creates a configuration section handler.
 /// </summary>
 /// <param name="parent">Parent object.</param>
 /// <param name="configContext">Configuration context object.</param>
 /// <param name="doc">The XML document.</param>
 /// <returns>The created section handler object.</returns>
 public CCNetConfigSettings Create(object parent, object configContext, XmlDocument doc)
 {
     try {
         MemoryStream        ms       = new MemoryStream( );
         CCNetConfigSettings settings = null;
         using ( ms ) {
             doc.Save(ms);
             ms.Position = 0;
             settings    = this.Create(parent, configContext, ms);
         }
         return(settings);
     } catch { throw; }
 }
 /// <summary>
 /// Saves the settings.
 /// </summary>
 /// <param name="settings">The settings.</param>
 public static void SaveSettings(CCNetConfigSettings settings)
 {
     try {
         FileInfo file = CCNetConfig.Core.Util.UserSettingsFile;
         if (file.Exists && file.IsReadOnly)
         {
             file.IsReadOnly = false;
         }
         XmlSerializer serializer = new XmlSerializer(typeof(CCNetConfigSettings));
         FileStream    fs         = new FileStream(file.FullName, FileMode.Create, FileAccess.Write);
         using ( fs ) {
             serializer.Serialize(fs, settings);
         }
     } catch { throw; }
 }
 /// <summary>
 /// Handles the Click event of the deleteBackupFilesButton control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
 private void deleteBackupFilesButton_Click(object sender, EventArgs e)
 {
     if (MessageBox.Show(this, Properties.Strings.ConfirmDeleteBackupsMessage, Properties.Strings.ConfirmDeleteBackupsTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
     {
         CCNetConfigSettings settings = CCNetConfig.Core.Util.UserSettings;
         this.backupFilesList.Items.Clear();
         if (settings.BackupSettings.SavePath.Exists)
         {
             FileInfo[] files = settings.BackupSettings.SavePath.GetFiles();
             if (files.Length > 0)
             {
                 foreach (FileInfo file in files)
                 {
                     file.Delete();
                 }
             }
         }
     }
 }
        /// <summary>
        /// Loads the user settings.
        /// </summary>
        private void LoadUserSettings()
        {
            CCNetConfigSettings settings = CCNetConfig.Core.Util.UserSettings;

            updateTypeCombo.DataSource = Enum.GetValues(typeof(UpdateCheckType));

            //Thread threadLoadComponents = new Thread ( new ThreadStart ( LoadComponentsToListView ) );
            //threadLoadComponents.Start ();

            LoadComponentsToListView();

            //Thread threadLoadBackupFiles = new Thread ( new ThreadStart ( LoadBackupsToListView ) );
            //threadLoadBackupFiles.Start ();

            LoadBackupsToListView();

            LoadPluginAssembliesInToListView();

            this.useProxy.Checked        = settings.UpdateSettings.ProxySettings.UseProxy;
            this.proxyServerAddress.Text = settings.UpdateSettings.ProxySettings.ProxyServer;
            this.proxyPort.Value         = settings.UpdateSettings.ProxySettings.ProxyPort;
            this.proxyPassword.Text      = settings.UpdateSettings.ProxySettings.Password;
            this.proxyUser.Text          = settings.UpdateSettings.ProxySettings.Username;

            updateTypeCombo.SelectedIndex      = updateTypeCombo.Items.IndexOf(settings.UpdateSettings.UpdateCheckType);
            this.updatesCheckAtStartup.Checked = settings.UpdateSettings.CheckOnStartup;

            this.backupSavePath.Text      = settings.BackupSettings.SavePath.FullName;
            this.backupWhenSaving.Checked = settings.BackupSettings.Enabled;
            this.backupFilesToKeep.Value  = settings.BackupSettings.NumberOfBackupsToKeep;

            this.generalMonitorForChanges.Checked = settings.WatchForFileChanges;
            this.externalViewerArguments.Text     = settings.ExternalViewerArguments;
            this.externalFileViewer.Text          = settings.ExternalViewer;

            this.sortProjectsAlphabetically.Checked = settings.SortProject;
        }