BExplorer.Shell.ShellView.SaveSettingsToDatabase C# (CSharp) Method

SaveSettingsToDatabase() public method

Saves the current destination settings to the SQLite database
public SaveSettingsToDatabase ( IListItemEx destination ) : void
destination IListItemEx The destination whos settings you want to save
return void
    public void SaveSettingsToDatabase(IListItemEx destination) {
      if (CurrentFolder == null || !CurrentFolder.IsFolder) return;

      var m_dbConnection = new SQLite.SQLiteConnection("Data Source=" + this._DBPath + ";Version=3;");
      m_dbConnection.Open();

      var command1 = new SQLite.SQLiteCommand("SELECT * FROM foldersettings WHERE Path=@Path", m_dbConnection);
      command1.Parameters.AddWithValue("Path", destination.ParsingName);
      var Reader = command1.ExecuteReader();
      var sql = Reader.Read() ? @"UPDATE foldersettings
							SET Path = @Path, LastSortOrder = @LastSortOrder, LastGroupOrder = @LastGroupOrder, LastGroupCollumn = @LastGroupCollumn,
									 View = @View, LastSortedColumn = @LastSortedColumn, Columns = @Columns, IconSize = @IconSize
							 WHERE Path = @Path" : @"INSERT into foldersettings (Path, LastSortOrder, LastGroupOrder, LastGroupCollumn, View, LastSortedColumn, Columns, IconSize)
							VALUES (@Path, @LastSortOrder, @LastGroupOrder, @LastGroupCollumn, @View, @LastSortedColumn, @Columns, @IconSize)";

      Int32[] orders = new Int32[this.Collumns.Count];
      User32.SendMessage(this.LVHandle, (UInt32)MSG.LVM_GETCOLUMNORDERARRAY, orders.Length, orders);

      var Columns_XML = new XElement("Columns");
      foreach (var index in orders) {
        var collumn = this.Collumns[index];
        var width = (Int32)User32.SendMessage(this.LVHandle, MSG.LVM_GETCOLUMNWIDTH, index, 0);
        var XML = new XElement("Column");
        XML.Add(new XAttribute("ID", collumn.ID == null ? "" : collumn.ID.ToString()));
        XML.Add(new XAttribute("Width", collumn.ID == null ? "" : width.ToString()));
        Columns_XML.Add(XML);
      }

      var Values = new Dictionary<String, String>() {
        { "Path", destination.ParsingName },
        { "LastSortOrder", LastSortOrder.ToString() },
        { "LastGroupOrder", LastGroupOrder.ToString() },
        { "LastGroupCollumn", LastGroupCollumn == null ? null : LastGroupCollumn.ID },
        { "View", View.ToString() },
        { "LastSortedColumn", LastSortedColumnId.ToString() },
        { "Columns", Columns_XML.ToString()},
        { "IconSize", this.IconSize.ToString() }
      };

      var command2 = new SQLite.SQLiteCommand(sql, m_dbConnection);
      foreach (var item in Values) {
        command2.Parameters.AddWithValue(item.Key, item.Value);
      }
      command2.ExecuteNonQuery();
      Reader.Close();
      m_dbConnection.Close();
    }
ShellView