internal static void CheckAndApplyNewMenusOrder(ContextMenu ctm) { try { var sb = new StringBuilder("SELECT COUNT(MENU_NAME) FROM MENUS_ORDER WHERE CONTEXT_NAME = '"); sb.Append(ctm.Name); sb.Append("' AND ORDER_ORIGINAL <> ORDER_NEW"); using (var oData = new SQLiteDataObject(PNData.ConnectionString)) { var obj = oData.GetScalar(sb.ToString()); if (obj != null && !PNData.IsDBNull(obj) && Convert.ToInt32(obj) > 0) RearrangeMenus(ctm); } } catch (Exception ex) { PNStatic.LogException(ex); } }
internal static void CheckAndApplyNewMenusOrder(ContextMenu ctm) { try { var sb = new StringBuilder("SELECT COUNT(MENU_NAME) FROM MENUS_ORDER WHERE CONTEXT_NAME = '"); sb.Append(ctm.Name); sb.Append("' AND ORDER_ORIGINAL <> ORDER_NEW"); using (var oData = new SQLiteDataObject(PNData.ConnectionString)) { var obj = oData.GetScalar(sb.ToString()); if (obj != null && !PNData.IsDBNull(obj) && Convert.ToInt32(obj) > 0) { RearrangeMenus(ctm); } } } catch (Exception ex) { PNStatic.LogException(ex); } }
private static bool isNotePresentedInCustomSettings(PNote note) { try { var sb = new StringBuilder(); sb.Append("SELECT COUNT(NOTE_ID) AS COUNT_ID FROM CUSTOM_NOTES_SETTINGS WHERE NOTE_ID = '"); sb.Append(note.ID); sb.Append("'"); using (var oData = new SQLiteDataObject(PNData.ConnectionString)) { var o = oData.GetScalar(sb.ToString()); if (o != null && !PNData.IsDBNull(o) && Convert.ToInt32(o) > 0) { return true; } return false; } } catch (Exception ex) { PNStatic.LogException(ex); return false; } }
internal static int GetNewGroupID() { using (var oData = new SQLiteDataObject(ConnectionString)) { var o = oData.GetScalar("SELECT MAX(GROUP_ID) FROM GROUPS"); if (o != null && !IsDBNull(o)) { return Convert.ToInt32(o) + 1; } } return 1; }
internal static void InsertNewGroup(PNGroup group) { try { var c = new ColorConverter(); var drcc = new System.Drawing.ColorConverter(); var wfc = new WPFFontConverter(); var lfc = new LogFontConverter(); var sb = new StringBuilder(); sb.Append("INSERT INTO GROUPS (GROUP_ID, PARENT_ID, GROUP_NAME, ICON, BACK_COLOR, CAPTION_FONT_COLOR, CAPTION_FONT, SKIN_NAME, PASSWORD_STRING, FONT, FONT_COLOR, IS_DEFAULT_IMAGE) VALUES("); sb.Append(group.ID); sb.Append(","); sb.Append(group.ParentID); sb.Append(",'"); sb.Append(group.Name.Replace("'", "''")); sb.Append("','"); if (!group.IsDefaultImage) { var base64String = Convert.ToBase64String(group.Image.ToBytes()); sb.Append(base64String); } else { sb.Append(group.ImageName); sb.Append(".png"); } //using (var ms = new MemoryStream(1)) //{ // group.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); // ms.Position = 0; // string base64String = Convert.ToBase64String(ms.ToArray()); // sb.Append(base64String); //} sb.Append("','"); sb.Append(c.ConvertToString(null, PNStatic.CultureInvariant, group.Skinless.BackColor)); sb.Append("','"); sb.Append(c.ConvertToString(null, PNStatic.CultureInvariant, group.Skinless.CaptionColor)); sb.Append("','"); sb.Append(wfc.ConvertToString(group.Skinless.CaptionFont)); sb.Append("','"); sb.Append(group.Skin.SkinName); sb.Append("','"); sb.Append(group.PasswordString); sb.Append("','"); sb.Append(lfc.ConvertToString(group.Font)); sb.Append("','"); sb.Append(drcc.ConvertToString(null, PNStatic.CultureInvariant, group.FontColor)); sb.Append("', "); sb.Append(Convert.ToInt32(group.IsDefaultImage)); sb.Append("); "); if (ExecuteTransactionForStringBuilder(sb, ConnectionString)) { sb = new StringBuilder(); var id = HK_START; using (var oData = new SQLiteDataObject(ConnectionString)) { var o = oData.GetScalar("SELECT MAX(ID) FROM HOT_KEYS"); if (o != null && !DBNull.Value.Equals(o)) { id = (int)(long)o + 1; } } var prefix = group.ID + "_show"; sb.Append("INSERT INTO HOT_KEYS (HK_TYPE, MENU_NAME, ID, SHORTCUT) VALUES("); sb.Append(((int)HotkeyType.Group).ToString(PNStatic.CultureInvariant)); sb.Append(",'"); sb.Append(prefix); sb.Append("',"); sb.Append(id.ToString(PNStatic.CultureInvariant)); sb.Append(",'');"); if (ExecuteTransactionForStringBuilder(sb, ConnectionString)) { PNStatic.HotKeysGroups.Add(new PNHotKey { MenuName = prefix, ID = id, Type = HotkeyType.Group }); } sb = new StringBuilder(); id++; prefix = group.ID + "_hide"; sb.Append("INSERT INTO HOT_KEYS (HK_TYPE, MENU_NAME, ID, SHORTCUT) VALUES("); sb.Append(((int)HotkeyType.Group).ToString(PNStatic.CultureInvariant)); sb.Append(",'"); sb.Append(prefix); sb.Append("',"); sb.Append(id.ToString(PNStatic.CultureInvariant)); sb.Append(",'');"); if (ExecuteTransactionForStringBuilder(sb, ConnectionString)) { PNStatic.HotKeysGroups.Add(new PNHotKey { MenuName = prefix, ID = id, Type = HotkeyType.Group }); } } } catch (Exception ex) { PNStatic.LogException(ex); } }
internal static void LoadDBSettings() { try { var mediaConverter = new ColorConverter(); var drawingConverter = new System.Drawing.ColorConverter(); var sc = new SizeConverter(); var pc = new PointConverter(); var wpfc = new WPFFontConverter(); //var fc = new FontConverter(); var v = Assembly.GetExecutingAssembly().GetName().Version; PNStatic.Settings = new PNSettings(); SettingsConnectionString = SQLiteDataObject.CheckAndCreateDatabase(PNPaths.Instance.SettingsDBPath); using (var oData = new SQLiteDataObject(SettingsConnectionString)) { string sqlQuery; //config var pnc = PNStatic.Settings.Config; if (!oData.TableExists("CONFIG")) { sqlQuery = "CREATE TABLE [CONFIG] ([LAST_PAGE] TEXT, [EXIT_FLAG] INT, [CP_LAST_GROUP] INT, [SKINNABLE] BOOLEAN, [CP_PVW_COLOR] TEXT, [CP_USE_CUST_PVW_COLOR] BOOLEAN, [CP_SIZE] TEXT, [CP_LOCATION] TEXT, [CONTROLS_STYLE] TEXT, [CP_PVW_RIGHT] BOOLEAN, [UI_FONT] TEXT, [PROGRAM_VERSION] TEXT, [CP_PVW_SHOW] BOOLEAN, [CP_GROUPS_SHOW] BOOLEAN, [NOTES_WITH_SHORTCUTS] TEXT, [SEARCH_NOTES_SETT] TEXT)"; oData.Execute(sqlQuery); sqlQuery = "INSERT INTO CONFIG VALUES(NULL, -1, NULL, NULL, NULL, NULL, '1000,600', NULL, NULL, NULL, NULL, '" + v.ToString(3) + "', NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); PNSingleton.Instance.FontUser = new PNFont(); pnc.CPSize = new Size(1000, 600); } else { using (var t = oData.GetSchema("Columns")) { var rows = t.Select("COLUMN_NAME = 'PROGRAM_VERSION' AND TABLE_NAME = 'CONFIG'"); if (rows.Length == 0) { PNSingleton.Instance.PlatformChanged = true; sqlQuery = "ALTER TABLE CONFIG ADD COLUMN [PROGRAM_VERSION] TEXT"; oData.Execute(sqlQuery); //save previous edition files PNStatic.SpTextProvider.SplashText = PNLang.Instance.GetMessageText("back_prev", "Backing up files from previous edition..."); savePreviousFiles(); } rows = t.Select("COLUMN_NAME = 'CP_PVW_RIGHT' AND TABLE_NAME = 'CONFIG'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE CONFIG ADD COLUMN [CP_PVW_RIGHT] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'CP_PVW_SHOW' AND TABLE_NAME = 'CONFIG'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE CONFIG ADD COLUMN [CP_PVW_SHOW] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'CP_GROUPS_SHOW' AND TABLE_NAME = 'CONFIG'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE CONFIG ADD COLUMN [CP_GROUPS_SHOW] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'UI_FONT' AND TABLE_NAME = 'CONFIG'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE CONFIG ADD COLUMN [UI_FONT] TEXT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'NOTES_WITH_SHORTCUTS' AND TABLE_NAME = 'CONFIG'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE CONFIG ADD COLUMN [NOTES_WITH_SHORTCUTS] TEXT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'SEARCH_NOTES_SETT' AND TABLE_NAME = 'CONFIG'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE CONFIG ADD COLUMN [SEARCH_NOTES_SETT] TEXT"; oData.Execute(sqlQuery); } } //store version sqlQuery = "UPDATE CONFIG SET PROGRAM_VERSION = '" + v.ToString(3) + "'"; oData.Execute(sqlQuery); //upgrade colors an fonts if (PNSingleton.Instance.PlatformChanged) { var obj = oData.GetScalar("SELECT CP_PVW_COLOR FROM CONFIG"); if (obj != null && !IsDBNull(obj)) { obj = drawingConverter.ConvertFromString(null, PNStatic.CultureInvariant, (string)obj); if (obj != null) { var clrD = (System.Drawing.Color)obj; var clrM = Color.FromArgb(clrD.A, clrD.R, clrD.G, clrD.B); var clrText = mediaConverter.ConvertToString(clrM); oData.Execute("UPDATE CONFIG SET CP_PVW_COLOR = '" + clrText + "'"); } } obj = oData.GetScalar("SELECT UI_FONT FROM CONFIG"); if (obj != null && !IsDBNull(obj)) { var pnFonf = PNStatic.FromDrawingFont((string)obj); var fontText = wpfc.ConvertToString(pnFonf); oData.Execute("UPDATE CONFIG SET UI_FONT = '" + fontText + "'"); } } sqlQuery = "SELECT * FROM CONFIG"; using (var t = oData.FillDataTable(sqlQuery)) { if (t.Rows.Count > 0) { var r = t.Rows[0]; if (!IsDBNull(r["LAST_PAGE"])) { pnc.LastPage = Convert.ToInt32(r["LAST_PAGE"]); } if (!IsDBNull(r["EXIT_FLAG"])) { pnc.ExitFlag = (int)r["EXIT_FLAG"]; } if (!IsDBNull(r["CP_LAST_GROUP"])) { pnc.CPLastGroup = (int)r["CP_LAST_GROUP"]; } if (!IsDBNull(r["SKINNABLE"])) { pnc.Skinnable = Convert.ToBoolean(r["SKINNABLE"]); } if (!IsDBNull(r["CP_PVW_COLOR"])) { var convertFromString = mediaConverter.ConvertFromString(null, PNStatic.CultureInvariant, (string)r["CP_PVW_COLOR"]); if ( convertFromString != null) pnc.CPPvwColor = (Color)convertFromString; } if (!IsDBNull(r["CP_USE_CUST_PVW_COLOR"])) { pnc.CPUseCustPvwColor = Convert.ToBoolean(r["CP_USE_CUST_PVW_COLOR"]); } if (!IsDBNull(r["CP_SIZE"])) { var str = Convert.ToString(r["CP_LOCATION"]); if (!str.Contains('-')) { str = Convert.ToString(r["CP_SIZE"]); var convertFromString = sc.ConvertFromString(null, PNStatic.CultureInvariant, str); if (convertFromString != null) pnc.CPSize = (Size)convertFromString; } } if (!IsDBNull(r["CP_LOCATION"])) { var convertFromString = pc.ConvertFromString(null, PNStatic.CultureInvariant, (string)r["CP_LOCATION"]); if ( convertFromString != null) pnc.CPLocation = (Point)convertFromString; } if (!IsDBNull(r["CONTROLS_STYLE"])) { pnc.ControlsStyle = (string)r["CONTROLS_STYLE"]; } if (!IsDBNull(r["CP_PVW_RIGHT"])) { pnc.CPPvwRight = Convert.ToBoolean(r["CP_PVW_RIGHT"]); } if (!IsDBNull(r["CP_PVW_SHOW"])) { pnc.CPPvwShow = Convert.ToBoolean(r["CP_PVW_SHOW"]); } if (!IsDBNull(r["CP_GROUPS_SHOW"])) { pnc.CPGroupsShow = Convert.ToBoolean(r["CP_GROUPS_SHOW"]); } if (!IsDBNull(r["UI_FONT"])) { var temp = (string)(r["UI_FONT"]); if (temp != "") { PNSingleton.Instance.FontUser = (PNFont)wpfc.ConvertFromString(temp); } else { PNSingleton.Instance.FontUser = new PNFont(); } } else { PNSingleton.Instance.FontUser = new PNFont(); } if (!IsDBNull(r["SEARCH_NOTES_SETT"])) { var arr = Convert.ToString(r["SEARCH_NOTES_SETT"]).Split('|'); pnc.SearchNotesSettings.WholewWord = Convert.ToBoolean(arr[0]); pnc.SearchNotesSettings.MatchCase = Convert.ToBoolean(arr[1]); pnc.SearchNotesSettings.IncludeHidden = Convert.ToBoolean(arr[2]); pnc.SearchNotesSettings.Criteria = Convert.ToInt32(arr[3]); pnc.SearchNotesSettings.Scope = Convert.ToInt32(arr[4]); } SaveExitFlag(-1); } else { sqlQuery = "INSERT INTO CONFIG VALUES(NULL, -1, NULL, NULL, NULL, NULL, '1000,600', NULL, NULL, NULL, NULL, '" + v.ToString(3) + "', NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); PNSingleton.Instance.FontUser = new PNFont(); pnc.CPSize = new Size(1000, 600); } } } //general setting var pngeneral = PNStatic.Settings.GeneralSettings; if (!oData.TableExists("GENERAL_SETTINGS")) { sqlQuery = "CREATE TABLE [GENERAL_SETTINGS] ([LANGUAGE] TEXT, [RUN_ON_START] BOOLEAN, [SHOW_CP_ON_START] BOOLEAN, [CHECK_NEW_VERSION_ON_START] BOOLEAN, [HIDE_TOOLBAR] BOOLEAN, [USE_CUSTOM_FONTS] BOOLEAN, [SHOW_SCROLLBAR] BOOLEAN, [HIDE_DELETE_BUTTON] BOOLEAN, [CHANGE_HIDE_TO_DELETE] BOOLEAN, [HIDE_HIDE_BUTTON] BOOLEAN, [BULLETS_INDENT] INT, [MARGIN_WIDTH] INT, [SAVE_ON_EXIT] BOOLEAN, [CONFIRM_SAVING] BOOLEAN, [CONFIRM_BEFORE_DELETION] BOOLEAN, [SAVE_WITHOUT_CONFIRM_ON_HIDE] BOOLEAN, [WARN_ON_AUTOMATICAL_DELETE] BOOLEAN, [AUTO_SAVE] BOOLEAN, [AUTO_SAVE_PERIOD] INT, [REMOVE_FROM_BIN_PERIOD] INT, [DATE_FORMAT] TEXT, [TIME_FORMAT] TEXT, [SKINLESS_WIDTH] INT, [SKINLESS_HEIGHT] INT, [SPELL_COLOR] TEXT, [USE_SKINS] BOOLEAN, [SPELL_MODE] INT, [SPELL_DICT] TEXT, [DOCK_WIDTH] INT, [DOCK_HEIGHT] INT, [SHOW_PRIORITY_ON_START] BOOLEAN, [BUTTONS_SIZE] INT, [AUTOMATIC_SMILIES] BOOLEAN, [SPACE_POINTS] INT, [RESTORE_AUTO] BOOLEAN, [PARAGRAPH_INDENT] INT, [AUTO_HEIGHT] BOOLEAN, [CRITICAL_ON_START] BOOLEAN, [CRITICAL_PERIODICALLY] BOOLEAN, [DELETE_SHORTCUTS_ON_EXIT] BOOLEAN, [RESTORE_SHORTCUTS_ON_START] BOOLEAN, [CLOSE_ON_SHORTCUT] BOOLEAN)"; oData.Execute(sqlQuery); sqlQuery = "INSERT INTO GENERAL_SETTINGS VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); //store default english language var langPath = Path.Combine(PNPaths.Instance.LangDir, pngeneral.Language); PNLang.Instance.LoadLanguage(langPath); } else { using (var t = oData.GetSchema("Columns")) { var rows = t.Select("COLUMN_NAME = 'BUTTONS_SIZE' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [BUTTONS_SIZE] INT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'AUTOMATIC_SMILIES' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [AUTOMATIC_SMILIES] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'SPACE_POINTS' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [SPACE_POINTS] INT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'RESTORE_AUTO' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [RESTORE_AUTO] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'PARAGRAPH_INDENT' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [PARAGRAPH_INDENT] INT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'AUTO_HEIGHT' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [AUTO_HEIGHT] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'CRITICAL_ON_START' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [CRITICAL_ON_START] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'CRITICAL_PERIODICALLY' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [CRITICAL_PERIODICALLY] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'DELETE_SHORTCUTS_ON_EXIT' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [DELETE_SHORTCUTS_ON_EXIT] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'RESTORE_SHORTCUTS_ON_START' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [RESTORE_SHORTCUTS_ON_START] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'CLOSE_ON_SHORTCUT' AND TABLE_NAME = 'GENERAL_SETTINGS'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE GENERAL_SETTINGS ADD COLUMN [CLOSE_ON_SHORTCUT] BOOLEAN"; oData.Execute(sqlQuery); } } sqlQuery = "SELECT * FROM GENERAL_SETTINGS"; using (var t = oData.FillDataTable(sqlQuery)) { if (t.Rows.Count > 0) { var r = t.Rows[0]; if (!IsDBNull(r["LANGUAGE"])) { pngeneral.Language = (string) r["LANGUAGE"]; } var langPath = Path.Combine(PNPaths.Instance.LangDir, pngeneral.Language); PNLang.Instance.LoadLanguage(langPath); if (!IsDBNull(r["RUN_ON_START"])) { pngeneral.RunOnStart = (bool)r["RUN_ON_START"]; } if (!IsDBNull(r["HIDE_TOOLBAR"])) { pngeneral.HideToolbar = (bool)r["HIDE_TOOLBAR"]; } if (!IsDBNull(r["SHOW_CP_ON_START"])) { pngeneral.ShowCPOnStart = (bool)r["SHOW_CP_ON_START"]; } if (!IsDBNull(r["CHECK_NEW_VERSION_ON_START"])) { pngeneral.CheckNewVersionOnStart = (bool)r["CHECK_NEW_VERSION_ON_START"]; } if (!IsDBNull(r["USE_CUSTOM_FONTS"])) { pngeneral.UseCustomFonts = (bool)r["USE_CUSTOM_FONTS"]; } if (!IsDBNull(r["SHOW_SCROLLBAR"])) { pngeneral.ShowScrollbar = (System.Windows.Forms.RichTextBoxScrollBars) Convert.ToInt32(r["SHOW_SCROLLBAR"]); } if (!IsDBNull(r["HIDE_DELETE_BUTTON"])) { pngeneral.HideDeleteButton = (bool)r["HIDE_DELETE_BUTTON"]; } if (!IsDBNull(r["CHANGE_HIDE_TO_DELETE"])) { pngeneral.ChangeHideToDelete = (bool)r["CHANGE_HIDE_TO_DELETE"]; } if (!IsDBNull(r["HIDE_HIDE_BUTTON"])) { pngeneral.HideHideButton = (bool)r["HIDE_HIDE_BUTTON"]; } if (!IsDBNull(r["BULLETS_INDENT"])) { pngeneral.BulletsIndent = (short)(int)r["BULLETS_INDENT"]; } if (!IsDBNull(r["MARGIN_WIDTH"])) { pngeneral.MarginWidth = (short)(int)r["MARGIN_WIDTH"]; } if (!IsDBNull(r["DATE_FORMAT"])) { pngeneral.DateFormat = ((string)r["DATE_FORMAT"]).Replace("H", "") .Replace("h", "") .Replace("m", "") .Replace(":", "") .Trim(); Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = pngeneral.DateFormat; } if (!IsDBNull(r["TIME_FORMAT"])) { pngeneral.TimeFormat = (string)r["TIME_FORMAT"]; Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern = pngeneral.TimeFormat; } if (!IsDBNull(r["SAVE_ON_EXIT"])) { pngeneral.SaveOnExit = (bool)r["SAVE_ON_EXIT"]; } if (!IsDBNull(r["CONFIRM_SAVING"])) { pngeneral.ConfirmSaving = (bool)r["CONFIRM_SAVING"]; } if (!IsDBNull(r["CONFIRM_BEFORE_DELETION"])) { pngeneral.ConfirmBeforeDeletion = (bool)r["CONFIRM_BEFORE_DELETION"]; } if (!IsDBNull(r["SAVE_WITHOUT_CONFIRM_ON_HIDE"])) { pngeneral.SaveWithoutConfirmOnHide = (bool)r["SAVE_WITHOUT_CONFIRM_ON_HIDE"]; } if (!IsDBNull(r["WARN_ON_AUTOMATICAL_DELETE"])) { pngeneral.WarnOnAutomaticalDelete = (bool)r["WARN_ON_AUTOMATICAL_DELETE"]; } if (!IsDBNull(r["REMOVE_FROM_BIN_PERIOD"])) { pngeneral.RemoveFromBinPeriod = (int)r["REMOVE_FROM_BIN_PERIOD"]; } if (!IsDBNull(r["AUTO_SAVE"])) { pngeneral.Autosave = (bool)r["AUTO_SAVE"]; } if (!IsDBNull(r["AUTO_SAVE_PERIOD"])) { pngeneral.AutosavePeriod = (int)r["AUTO_SAVE_PERIOD"]; } if (!IsDBNull(r["SKINLESS_WIDTH"])) { pngeneral.Width = (int)r["SKINLESS_WIDTH"]; } if (!IsDBNull(r["SKINLESS_HEIGHT"])) { pngeneral.Height = (int)r["SKINLESS_HEIGHT"]; } if (!IsDBNull(r["SPELL_COLOR"])) { pngeneral.SpellColor = (System.Drawing.Color) drawingConverter.ConvertFromString(null, PNStatic.CultureInvariant, (string)r["SPELL_COLOR"]); } if (!IsDBNull(r["USE_SKINS"])) { pngeneral.UseSkins = (bool)r["USE_SKINS"]; } if (!IsDBNull(r["SPELL_MODE"])) { pngeneral.SpellMode = (int)r["SPELL_MODE"]; } if (!IsDBNull(r["SPELL_DICT"])) { pngeneral.SpellDict = (string)r["SPELL_DICT"]; } if (!IsDBNull(r["DOCK_WIDTH"])) { pngeneral.DockWidth = (int)r["DOCK_WIDTH"]; } if (!IsDBNull(r["DOCK_HEIGHT"])) { pngeneral.DockHeight = (int)r["DOCK_HEIGHT"]; } if (!IsDBNull(r["SHOW_PRIORITY_ON_START"])) { pngeneral.ShowPriorityOnStart = (bool)r["SHOW_PRIORITY_ON_START"]; } if (!IsDBNull(r["BUTTONS_SIZE"])) { pngeneral.ButtonsSize = (ToolStripButtonSize)((int)r["BUTTONS_SIZE"]); } if (!IsDBNull(r["AUTOMATIC_SMILIES"])) { pngeneral.AutomaticSmilies = (bool)r["AUTOMATIC_SMILIES"]; } if (!IsDBNull(r["SPACE_POINTS"])) { pngeneral.SpacePoints = (int)r["SPACE_POINTS"]; } if (!IsDBNull(r["RESTORE_AUTO"])) { pngeneral.RestoreAuto = (bool)r["RESTORE_AUTO"]; } if (!IsDBNull(r["PARAGRAPH_INDENT"])) { pngeneral.ParagraphIndent = (int)r["PARAGRAPH_INDENT"]; } if (!IsDBNull(r["AUTO_HEIGHT"])) { pngeneral.AutoHeight = (bool)r["AUTO_HEIGHT"]; } if (!IsDBNull(r["CRITICAL_ON_START"])) { pngeneral.CheckCriticalOnStart = (bool)r["CRITICAL_ON_START"]; } if (!IsDBNull(r["CRITICAL_PERIODICALLY"])) { pngeneral.CheckCriticalPeriodically = (bool)r["CRITICAL_PERIODICALLY"]; } if (!IsDBNull(r["DELETE_SHORTCUTS_ON_EXIT"])) { pngeneral.DeleteShortcutsOnExit = (bool)r["DELETE_SHORTCUTS_ON_EXIT"]; } if (!IsDBNull(r["RESTORE_SHORTCUTS_ON_START"])) { pngeneral.RestoreShortcutsOnStart = (bool)r["RESTORE_SHORTCUTS_ON_START"]; } if (!IsDBNull(r["CLOSE_ON_SHORTCUT"])) { pngeneral.CloseOnShortcut = (bool)r["CLOSE_ON_SHORTCUT"]; } } else { sqlQuery = "INSERT INTO GENERAL_SETTINGS VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } } } PNStatic.SpTextProvider.SplashText = PNLang.Instance.GetMessageText("load_program_settings", "Loading program settings"); //schedule if (!oData.TableExists("SCHEDULE")) { sqlQuery = "CREATE TABLE [SCHEDULE] ([SOUND] TEXT, [DATE_FORMAT] TEXT, [TIME_FORMAT] TEXT, [VOICE] TEXT, [ALLOW_SOUND] BOOLEAN, [TRACK_OVERDUE] BOOLEAN, [VISUAL_NOTIFY] BOOLEAN, [CENTER_SCREEN] BOOLEAN, [VOICE_VOLUME] INT, [VOICE_SPEED] INT, [VOICE_PITCH] INT)"; oData.Execute(sqlQuery); sqlQuery = "INSERT INTO SCHEDULE VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } else { sqlQuery = "SELECT * FROM SCHEDULE"; using (var t = oData.FillDataTable(sqlQuery)) { if (t.Rows.Count > 0) { var r = t.Rows[0]; var pnsc = PNStatic.Settings.Schedule; if (!IsDBNull(r["SOUND"])) { pnsc.Sound = (string)r["SOUND"]; } if (!IsDBNull(r["VOICE"])) { pnsc.Voice = (string)r["VOICE"]; } if (!IsDBNull(r["ALLOW_SOUND"])) { pnsc.AllowSoundAlert = (bool)r["ALLOW_SOUND"]; } if (!IsDBNull(r["TRACK_OVERDUE"])) { pnsc.TrackOverdue = (bool)r["TRACK_OVERDUE"]; } if (!IsDBNull(r["VISUAL_NOTIFY"])) { pnsc.VisualNotification = (bool)r["VISUAL_NOTIFY"]; } if (!IsDBNull(r["CENTER_SCREEN"])) { pnsc.CenterScreen = (bool)r["CENTER_SCREEN"]; } if (!IsDBNull(r["VOICE_VOLUME"])) { pnsc.VoiceVolume = (int)r["VOICE_VOLUME"]; } if (!IsDBNull(r["VOICE_SPEED"])) { pnsc.VoiceSpeed = (int)r["VOICE_SPEED"]; } if (!IsDBNull(r["VOICE_PITCH"])) { pnsc.VoicePitch = (int)r["VOICE_PITCH"]; } } else { sqlQuery = "INSERT INTO SCHEDULE VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } } } //behavior if (!oData.TableExists("BEHAVIOR")) { sqlQuery = "CREATE TABLE [BEHAVIOR] ([NEW_ALWAYS_ON_TOP] BOOLEAN, [RELATIONAL_POSITION] BOOLEAN, [HIDE_COMPLETED] BOOLEAN, [BIG_ICONS_ON_CP] BOOLEAN, [DO_NOT_SHOW_IN_LIST] BOOLEAN, [KEEP_VISIBLE_ON_SHOW_DESKTOP] BOOLEAN, [DBL_CLICK_ACTION] INT, [SINGLE_CLICK_ACTION] INT, [DEFAULT_NAMING] INT, [DEFAULT_NAME_LENGHT] INT, [CONTENT_COLUMN_LENGTH] INT, [HIDE_FLUENTLY] BOOLEAN, [PLAY_SOUND_ON_HIDE] BOOLEAN, [OPACITY] REAL, [RANDOM_COLOR] BOOLEAN, [INVERT_TEXT_COLOR] BOOLEAN, [ROLL_ON_DBLCLICK] BOOLEAN, [FIT_WHEN_ROLLED] BOOLEAN, [SHOW_SEPARATE_NOTES] BOOLEAN, [PIN_CLICK_ACTION] INT, [NOTE_START_POSITION] INT, [HIDE_MAIN_WINDOW] BOOLEAN, [THEME] TEXT, [PREVENT_RESIZING] BOOLEAN, [SHOW_PANEL] BOOLEAN, [PANEL_DOCK] INT, [PANEL_AUTO_HIDE] BOOLEAN, [PANEL_REMOVE_MODE] INT, [PANEL_SWITCH_OFF_ANIMATION] BOOLEAN, [PANEL_ENTER_DELAY] INT)"; oData.Execute(sqlQuery); sqlQuery = "INSERT INTO BEHAVIOR VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } else { using (var t = oData.GetSchema("Columns")) { var rows = t.Select("COLUMN_NAME = 'NOTE_START_POSITION' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [NOTE_START_POSITION] INT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'HIDE_MAIN_WINDOW' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [HIDE_MAIN_WINDOW] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'THEME' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [THEME] TEXT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'PREVENT_RESIZING' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [PREVENT_RESIZING] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'SHOW_PANEL' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [SHOW_PANEL] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'PANEL_DOCK' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [PANEL_DOCK] INT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'PANEL_AUTO_HIDE' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [PANEL_AUTO_HIDE] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'PANEL_REMOVE_MODE' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [PANEL_REMOVE_MODE] INT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'PANEL_SWITCH_OFF_ANIMATION' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [PANEL_SWITCH_OFF_ANIMATION] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'PANEL_ENTER_DELAY' AND TABLE_NAME = 'BEHAVIOR'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE BEHAVIOR ADD COLUMN [PANEL_ENTER_DELAY] INT"; oData.Execute(sqlQuery); } } sqlQuery = "SELECT * FROM BEHAVIOR"; using (var t = oData.FillDataTable(sqlQuery)) { if (t.Rows.Count > 0) { var r = t.Rows[0]; var pnb = PNStatic.Settings.Behavior; if (!IsDBNull(r["NEW_ALWAYS_ON_TOP"])) { pnb.NewNoteAlwaysOnTop = (bool)r["NEW_ALWAYS_ON_TOP"]; } if (!IsDBNull(r["RELATIONAL_POSITION"])) { pnb.RelationalPositioning = (bool)r["RELATIONAL_POSITION"]; } if (!IsDBNull(r["HIDE_COMPLETED"])) { pnb.HideCompleted = (bool)r["HIDE_COMPLETED"]; } if (!IsDBNull(r["BIG_ICONS_ON_CP"])) { pnb.BigIconsOnCP = (bool)r["BIG_ICONS_ON_CP"]; } if (!IsDBNull(r["DO_NOT_SHOW_IN_LIST"])) { pnb.DoNotShowNotesInList = (bool)r["DO_NOT_SHOW_IN_LIST"]; } if (!IsDBNull(r["KEEP_VISIBLE_ON_SHOW_DESKTOP"])) { pnb.KeepVisibleOnShowDesktop = (bool)r["KEEP_VISIBLE_ON_SHOW_DESKTOP"]; } if (!IsDBNull(r["DBL_CLICK_ACTION"])) { var index = (int) r["DBL_CLICK_ACTION"]; if (index < Enum.GetValues(typeof (TrayMouseAction)).Length) pnb.DoubleClickAction = (TrayMouseAction) index; } if (!IsDBNull(r["SINGLE_CLICK_ACTION"])) { var index = (int)r["SINGLE_CLICK_ACTION"]; if (index < Enum.GetValues(typeof (TrayMouseAction)).Length) pnb.SingleClickAction = (TrayMouseAction) index; } if (!IsDBNull(r["DEFAULT_NAMING"])) { var index = (int)r["DEFAULT_NAMING"]; if (index < Enum.GetValues(typeof(DefaultNaming)).Length) pnb.DefaultNaming = (DefaultNaming)index; } if (!IsDBNull(r["DEFAULT_NAME_LENGHT"])) { pnb.DefaultNameLength = (int)r["DEFAULT_NAME_LENGHT"]; } if (!IsDBNull(r["CONTENT_COLUMN_LENGTH"])) { pnb.ContentColumnLength = (int)r["CONTENT_COLUMN_LENGTH"]; } if (!IsDBNull(r["HIDE_FLUENTLY"])) { pnb.HideFluently = (bool)r["HIDE_FLUENTLY"]; } if (!IsDBNull(r["PLAY_SOUND_ON_HIDE"])) { pnb.PlaySoundOnHide = (bool)r["PLAY_SOUND_ON_HIDE"]; } if (!IsDBNull(r["OPACITY"])) { pnb.Opacity = (double)r["OPACITY"]; } if (!IsDBNull(r["RANDOM_COLOR"])) { pnb.RandomBackColor = (bool)r["RANDOM_COLOR"]; } if (!IsDBNull(r["INVERT_TEXT_COLOR"])) { pnb.InvertTextColor = (bool)r["INVERT_TEXT_COLOR"]; } if (!IsDBNull(r["ROLL_ON_DBLCLICK"])) { pnb.RollOnDblClick = (bool)r["ROLL_ON_DBLCLICK"]; } if (!IsDBNull(r["FIT_WHEN_ROLLED"])) { pnb.FitWhenRolled = (bool)r["FIT_WHEN_ROLLED"]; } if (!IsDBNull(r["SHOW_SEPARATE_NOTES"])) { pnb.ShowSeparateNotes = (bool)r["SHOW_SEPARATE_NOTES"]; } if (!IsDBNull(r["PIN_CLICK_ACTION"])) { var index = (int)r["PIN_CLICK_ACTION"]; if (index < Enum.GetValues(typeof(PinClickAction)).Length) pnb.PinClickAction = (PinClickAction)index; } if (!IsDBNull(r["NOTE_START_POSITION"])) { var index = (int)r["NOTE_START_POSITION"]; if (index < Enum.GetValues(typeof(NoteStartPosition)).Length) pnb.StartPosition = (NoteStartPosition)index; } if (!IsDBNull(r["HIDE_MAIN_WINDOW"])) { pnb.HideMainWindow = (bool)r["HIDE_MAIN_WINDOW"]; } if (!IsDBNull(r["THEME"])) { pnb.Theme = (string) r["THEME"]; } else { pnb.Theme = PNStrings.DEF_THEME; } if (!IsDBNull(r["PREVENT_RESIZING"])) { pnb.PreventAutomaticResizing = (bool)r["PREVENT_RESIZING"]; } if (!IsDBNull(r["SHOW_PANEL"])) { pnb.ShowNotesPanel = (bool)r["SHOW_PANEL"]; } if (!IsDBNull(r["PANEL_DOCK"])) { pnb.NotesPanelOrientation = (NotesPanelOrientation)r["PANEL_DOCK"]; } if (!IsDBNull(r["PANEL_AUTO_HIDE"])) { pnb.PanelAutoHide = (bool)r["PANEL_AUTO_HIDE"]; } if (!IsDBNull(r["PANEL_REMOVE_MODE"])) { pnb.PanelRemoveMode = (PanelRemoveMode)r["PANEL_REMOVE_MODE"]; } if (!IsDBNull(r["PANEL_SWITCH_OFF_ANIMATION"])) { pnb.PanelSwitchOffAnimation = (bool)r["PANEL_SWITCH_OFF_ANIMATION"]; } if (!IsDBNull(r["PANEL_ENTER_DELAY"])) { pnb.PanelEnterDelay = (int)r["PANEL_ENTER_DELAY"]; } } else { sqlQuery = "INSERT INTO BEHAVIOR VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } } } //protection if (!oData.TableExists("PROTECTION")) { sqlQuery = "CREATE TABLE [PROTECTION] ([STORE_AS_ENCRYPTED] BOOLEAN, [HIDE_TRAY_ICON] BOOLEAN, [BACKUP_BEFORE_SAVING] BOOLEAN, [SILENT_FULL_BACKUP] BOOLEAN, [BACKUP_DEEPNESS] INT, [DO_NOT_SHOW_CONTENT] BOOLEAN, [INCLUDE_BIN_IN_SYNC] BOOLEAN, [PASSWORD_STRING] TEXT, [FULL_BACKUP_DAYS] TEXT, [FULL_BACKUP_TIME] TEXT, [FULL_BACKUP_DATE] TEXT, [PROMPT_PASSWORD] BOOLEAN)"; oData.Execute(sqlQuery); sqlQuery = "INSERT INTO PROTECTION VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } else { using (var t = oData.GetSchema("Columns")) { var rows = t.Select("COLUMN_NAME = 'FULL_BACKUP_DAYS' AND TABLE_NAME = 'PROTECTION'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE PROTECTION ADD COLUMN [FULL_BACKUP_DAYS] TEXT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'FULL_BACKUP_TIME' AND TABLE_NAME = 'PROTECTION'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE PROTECTION ADD COLUMN [FULL_BACKUP_TIME] TEXT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'FULL_BACKUP_DATE' AND TABLE_NAME = 'PROTECTION'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE PROTECTION ADD COLUMN [FULL_BACKUP_DATE] TEXT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'PROMPT_PASSWORD' AND TABLE_NAME = 'PROTECTION'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE PROTECTION ADD COLUMN [PROMPT_PASSWORD] BOOLEAN"; oData.Execute(sqlQuery); } } sqlQuery = "SELECT * FROM PROTECTION"; using (var t = oData.FillDataTable(sqlQuery)) { if (t.Rows.Count > 0) { var r = t.Rows[0]; var pnp = PNStatic.Settings.Protection; if (!IsDBNull(r["STORE_AS_ENCRYPTED"])) { pnp.StoreAsEncrypted = (bool)r["STORE_AS_ENCRYPTED"]; } if (!IsDBNull(r["HIDE_TRAY_ICON"])) { pnp.HideTrayIcon = (bool)r["HIDE_TRAY_ICON"]; } if (!IsDBNull(r["BACKUP_BEFORE_SAVING"])) { pnp.BackupBeforeSaving = (bool)r["BACKUP_BEFORE_SAVING"]; } if (!IsDBNull(r["SILENT_FULL_BACKUP"])) { pnp.SilentFullBackup = (bool)r["SILENT_FULL_BACKUP"]; } if (!IsDBNull(r["BACKUP_DEEPNESS"])) { pnp.BackupDeepness = (int)r["BACKUP_DEEPNESS"]; } if (!IsDBNull(r["DO_NOT_SHOW_CONTENT"])) { pnp.DontShowContent = (bool)r["DO_NOT_SHOW_CONTENT"]; } if (!IsDBNull(r["INCLUDE_BIN_IN_SYNC"])) { pnp.IncludeBinInSync = (bool)r["INCLUDE_BIN_IN_SYNC"]; } if (!IsDBNull(r["PASSWORD_STRING"])) { pnp.PasswordString = (string)r["PASSWORD_STRING"]; } if (!IsDBNull(r["FULL_BACKUP_DAYS"])) { var temp = Convert.ToString(r["FULL_BACKUP_DAYS"]); if (!string.IsNullOrEmpty(temp)) { var days = temp.Split(','); foreach (var d in days) { pnp.FullBackupDays.Add((DayOfWeek)Convert.ToInt32(d)); } } } if (!IsDBNull(r["FULL_BACKUP_TIME"])) { pnp.FullBackupTime = DateTime.Parse((string)r["FULL_BACKUP_TIME"], PNStatic.CultureInvariant); } if (!IsDBNull(r["FULL_BACKUP_DATE"])) { pnp.FullBackupDate = DateTime.Parse((string)r["FULL_BACKUP_DATE"], PNStatic.CultureInvariant); } if (!IsDBNull(r["PROMPT_PASSWORD"])) { pnp.PromptForPassword = (bool)r["PROMPT_PASSWORD"]; } } else { sqlQuery = "INSERT INTO PROTECTION VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } } } //diary if (!oData.TableExists("DIARY")) { sqlQuery = "CREATE TABLE [DIARY] ([CUSTOM_SETTINGS] BOOLEAN, [ADD_WEEKDAY] BOOLEAN, [FULL_WEEKDAY_NAME] BOOLEAN, [WEEKDAY_AT_THE_END] BOOLEAN, [DO_NOT_SHOW_PREVIOUS] BOOLEAN, [ASC_ORDER] BOOLEAN, [NUMBER_OF_PAGES] INT, [DATE_FORMAT] TEXT)"; oData.Execute(sqlQuery); sqlQuery = "INSERT INTO DIARY VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } else { sqlQuery = "SELECT * FROM DIARY"; using (var t = oData.FillDataTable(sqlQuery)) { if (t.Rows.Count > 0) { var r = t.Rows[0]; var pndr = PNStatic.Settings.Diary; if (!IsDBNull(r["CUSTOM_SETTINGS"])) { pndr.CustomSettings = (bool)r["CUSTOM_SETTINGS"]; } if (!IsDBNull(r["ADD_WEEKDAY"])) { pndr.AddWeekday = (bool)r["ADD_WEEKDAY"]; } if (!IsDBNull(r["FULL_WEEKDAY_NAME"])) { pndr.FullWeekdayName = (bool)r["FULL_WEEKDAY_NAME"]; } if (!IsDBNull(r["WEEKDAY_AT_THE_END"])) { pndr.WeekdayAtTheEnd = (bool)r["WEEKDAY_AT_THE_END"]; } if (!IsDBNull(r["DO_NOT_SHOW_PREVIOUS"])) { pndr.DoNotShowPrevious = (bool)r["DO_NOT_SHOW_PREVIOUS"]; } if (!IsDBNull(r["ASC_ORDER"])) { pndr.AscendingOrder = (bool)r["ASC_ORDER"]; } if (!IsDBNull(r["NUMBER_OF_PAGES"])) { pndr.NumberOfPages = (int)r["NUMBER_OF_PAGES"]; } if (!IsDBNull(r["DATE_FORMAT"])) { pndr.DateFormat = (string)r["DATE_FORMAT"]; } } else { sqlQuery = "INSERT INTO DIARY VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } } } //network if (!oData.TableExists("NETWORK")) { sqlQuery = "CREATE TABLE [NETWORK] ([INCLUDE_BIN_IN_SYNC] BOOLEAN, [SYNC_ON_START] BOOLEAN, [SAVE_BEFORE_SYNC] BOOLEAN, [ENABLE_EXCHANGE] BOOLEAN, [SAVE_BEFORE_SEND] BOOLEAN, [NO_NOTIFY_ON_ARRIVE] BOOLEAN, [SHOW_RECEIVED_ON_CLICK] BOOLEAN, [SHOW_INCOMING_ON_CLICK] BOOLEAN, [NO_SOUND_ON_ARRIVE] BOOLEAN, [NO_NOTIFY_ON_SEND] BOOLEAN, [SHOW_AFTER_ARRIVE] BOOLEAN, [HIDE_AFTER_SEND] BOOLEAN, [NO_CONTACTS_IN_CONTEXT_MENU] BOOLEAN, [EXCHANGE_PORT] INT, [POST_COUNT] INT, [ALLOW_PING] BOOLEAN, [RECEIVED_ON_TOP] BOOLEAN)"; oData.Execute(sqlQuery); sqlQuery = "INSERT INTO NETWORK VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } else { using (var t = oData.GetSchema("Columns")) { var rows = t.Select("COLUMN_NAME = 'POST_COUNT' AND TABLE_NAME = 'NETWORK'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE NETWORK ADD COLUMN [POST_COUNT] INT"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'ALLOW_PING' AND TABLE_NAME = 'NETWORK'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE NETWORK ADD COLUMN [ALLOW_PING] BOOLEAN"; oData.Execute(sqlQuery); } rows = t.Select("COLUMN_NAME = 'RECEIVED_ON_TOP' AND TABLE_NAME = 'NETWORK'"); if (rows.Length == 0) { sqlQuery = "ALTER TABLE NETWORK ADD COLUMN [RECEIVED_ON_TOP] BOOLEAN"; oData.Execute(sqlQuery); } } sqlQuery = "SELECT * FROM NETWORK"; using (var t = oData.FillDataTable(sqlQuery)) { if (t.Rows.Count > 0) { var r = t.Rows[0]; var pnw = PNStatic.Settings.Network; if (!IsDBNull(r["INCLUDE_BIN_IN_SYNC"])) { pnw.IncludeBinInSync = (bool)r["INCLUDE_BIN_IN_SYNC"]; } if (!IsDBNull(r["SYNC_ON_START"])) { pnw.SyncOnStart = (bool)r["SYNC_ON_START"]; } if (!IsDBNull(r["SAVE_BEFORE_SYNC"])) { pnw.SaveBeforeSync = (bool)r["SAVE_BEFORE_SYNC"]; } if (!IsDBNull(r["ENABLE_EXCHANGE"])) { pnw.EnableExchange = (bool)r["ENABLE_EXCHANGE"]; } if (!IsDBNull(r["SAVE_BEFORE_SEND"])) { pnw.SaveBeforeSending = (bool)r["SAVE_BEFORE_SEND"]; } if (!IsDBNull(r["NO_NOTIFY_ON_ARRIVE"])) { pnw.NoNotificationOnArrive = (bool)r["NO_NOTIFY_ON_ARRIVE"]; } if (!IsDBNull(r["SHOW_RECEIVED_ON_CLICK"])) { pnw.ShowReceivedOnClick = (bool)r["SHOW_RECEIVED_ON_CLICK"]; } if (!IsDBNull(r["SHOW_INCOMING_ON_CLICK"])) { pnw.ShowIncomingOnClick = (bool)r["SHOW_INCOMING_ON_CLICK"]; } if (!IsDBNull(r["NO_SOUND_ON_ARRIVE"])) { pnw.NoSoundOnArrive = (bool)r["NO_SOUND_ON_ARRIVE"]; } if (!IsDBNull(r["NO_NOTIFY_ON_SEND"])) { pnw.NoNotificationOnSend = (bool)r["NO_NOTIFY_ON_SEND"]; } if (!IsDBNull(r["SHOW_AFTER_ARRIVE"])) { pnw.ShowAfterArrive = (bool)r["SHOW_AFTER_ARRIVE"]; } if (!IsDBNull(r["HIDE_AFTER_SEND"])) { pnw.HideAfterSending = (bool)r["HIDE_AFTER_SEND"]; } if (!IsDBNull(r["NO_CONTACTS_IN_CONTEXT_MENU"])) { pnw.NoContactsInContextMenu = (bool)r["NO_CONTACTS_IN_CONTEXT_MENU"]; } if (!IsDBNull(r["EXCHANGE_PORT"])) { pnw.ExchangePort = (int)r["EXCHANGE_PORT"]; } if (!IsDBNull(r["POST_COUNT"])) { pnw.PostCount = (int)r["POST_COUNT"]; } if (!IsDBNull(r["ALLOW_PING"])) { pnw.AllowPing = (bool)r["ALLOW_PING"]; } if (!IsDBNull(r["RECEIVED_ON_TOP"])) { pnw.ReceivedOnTop = (bool)r["RECEIVED_ON_TOP"]; } } else { sqlQuery = "INSERT INTO NETWORK VALUES(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)"; oData.Execute(sqlQuery); } } } } } catch (Exception ex) { PNStatic.LogException(ex); } }
internal static IEnumerable<string> GetNotesWithShortcuts() { try { using (var oData = new SQLiteDataObject(SettingsConnectionString)) { var obj = oData.GetScalar("SELECT NOTES_WITH_SHORTCUTS FROM CONFIG"); if (obj != null && !IsDBNull(obj) && !string.IsNullOrEmpty(Convert.ToString(obj))) { return Convert.ToString(obj).Split(','); } } return null; } catch (Exception ex) { PNStatic.LogException(ex); return null; } }
internal static void LoadGridColumns(GridView grd, List<ColumnProps> cols, List<GRDSort> sortColumns, string gridName) { try { cols.Clear(); var sqlList = new List<string>(); var tableName = gridName == "grdNotes" ? "GRD_NOTES_COLUMNS" : "GRD_BACK_COLUMNS"; using (var oData = new SQLiteDataObject(SettingsConnectionString)) { if (oData.TableExists(tableName)) { // check for "encrypted" column if (gridName == "grdNotes") { var obj = oData.GetScalar("SELECT CN_KEY FROM GRD_NOTES_COLUMNS WHERE CN_KEY = 'Note_Encrypted'"); if (obj == null || IsDBNull(obj)) { oData.Execute( "UPDATE GRD_NOTES_COLUMNS SET CN_DISPLAY_INDEX = CN_ORIGINAL_INDEX"); oData.Execute( "UPDATE GRD_NOTES_COLUMNS SET CN_ORIGINAL_INDEX = CN_ORIGINAL_INDEX + 1, CN_DISPLAY_INDEX = CN_DISPLAY_INDEX + 1 WHERE CN_ORIGINAL_INDEX >= 9"); oData.Execute( "INSERT INTO GRD_NOTES_COLUMNS VALUES('Note_Encrypted', 1, 9, 9, 32, 32, NULL, NULL)"); } obj = oData.GetScalar("SELECT CN_KEY FROM GRD_NOTES_COLUMNS WHERE CN_KEY = 'Note_PrevGroup'"); if (obj == null || IsDBNull(obj)) { oData.Execute( "UPDATE GRD_NOTES_COLUMNS SET CN_DISPLAY_INDEX = CN_ORIGINAL_INDEX"); oData.Execute( "UPDATE GRD_NOTES_COLUMNS SET CN_ORIGINAL_INDEX = CN_ORIGINAL_INDEX + 1, CN_DISPLAY_INDEX = CN_DISPLAY_INDEX + 1 WHERE CN_ORIGINAL_INDEX >= 11"); oData.Execute( "INSERT INTO GRD_NOTES_COLUMNS VALUES('Note_Encrypted', 1, 11, 11, 32, 32, NULL, NULL)"); } } using (var t = oData.FillDataTable("SELECT * FROM " + tableName)) { foreach (DataRow r in t.Rows) { var column = grd.Columns.Where(t1 => PNGridViewHelper.GetColumnName(t1) == (string)r["CN_KEY"]) .Cast<FixedWidthColumn>() .FirstOrDefault(); if (column == null) continue; if (!Convert.ToBoolean(r["CN_VISIBILITY"])) { column.Visibility = Visibility.Hidden; column.Width = column.ActualWidth; } else { column.FixedWidth = Convert.ToInt32(r["CN_DISPLAY_WIDTH"]); column.Width = column.FixedWidth; } column.DisplayIndex = Convert.ToInt32(r["CN_DISPLAY_INDEX"]); column.OriginalIndex = Convert.ToInt32(r["CN_ORIGINAL_INDEX"]); cols.Add(new ColumnProps { Name = (string)r["CN_KEY"], Visibility = column.Visibility, Width = Convert.ToInt32(r["CN_DISPLAY_WIDTH"]) }); var sort = new GRDSort { Key = (string)r["CN_KEY"] }; if (!IsDBNull(r["CN_SORT_ORDER"])) { sort.SortOrder = (ListSortDirection)Convert.ToInt32(r["CN_SORT_ORDER"]); } if (!IsDBNull(r["CN_LAST_SORTED"])) { sort.LastSorted = Convert.ToBoolean(r["CN_LAST_SORTED"]); } sortColumns.Add(sort); } } } else { sqlList.Add( "CREATE TABLE [" + tableName + "] ([CN_KEY] TEXT PRIMARY KEY NOT NULL UNIQUE, [CN_VISIBILITY] BOOLEAN NOT NULL, [CN_ORIGINAL_INDEX] INT NOT NULL, [CN_DISPLAY_INDEX] INT NOT NULL, [CN_ORIGINAL_WIDTH] INT NOT NULL, [CN_DISPLAY_WIDTH] INT NOT NULL, [CN_SORT_ORDER] INT, [CN_LAST_SORTED] BOOLEAN)"); for (var i = 0; i < grd.Columns.Count; i++) { var c = (FixedWidthColumn)grd.Columns[i]; var sb = new StringBuilder(); sb.Append( "INSERT INTO " + tableName + " (CN_KEY, CN_VISIBILITY, CN_ORIGINAL_INDEX, CN_DISPLAY_INDEX, CN_ORIGINAL_WIDTH, CN_DISPLAY_WIDTH, CN_SORT_ORDER, CN_LAST_SORTED) VALUES("); sb.Append("'"); sb.Append(PNGridViewHelper.GetColumnName(c)); sb.Append("', "); sb.Append(1); sb.Append(", "); sb.Append(i); sb.Append(", "); sb.Append(i); sb.Append(", "); sb.Append(c.FixedWidth); sb.Append(", "); sb.Append(c.FixedWidth); sb.Append(", NULL, NULL)"); sqlList.Add(sb.ToString()); cols.Add(new ColumnProps { Name = PNGridViewHelper.GetColumnName(c), Visibility = Visibility.Visible, Width = c.FixedWidth }); } ExecuteTransactionForList(sqlList, SettingsConnectionString); } } } catch (Exception ex) { PNStatic.LogException(ex); } }
internal static void AddNewTags(IEnumerable<string> tags) { try { using (var oData = new SQLiteDataObject(ConnectionString)) { foreach (var t in tags) { var sb = new StringBuilder("SELECT TAG FROM TAGS WHERE TAG = '"); sb.Append(t.Replace("'", "''")); sb.Append("'"); var obj = oData.GetScalar(sb.ToString()); if (obj != null && !IsDBNull(obj)) continue; sb = new StringBuilder("INSERT INTO TAGS VALUES('"); sb.Append(t.Replace("'", "''")); sb.Append("')"); oData.Execute(sb.ToString()); PNStatic.Tags.Add(t); } } } catch (Exception ex) { PNStatic.LogException(ex); } }
private void loadNotesFromFilesList(IEnumerable<string> files, int groupId = 0) { try { using (var oData = new SQLiteDataObject(PNData.ConnectionString)) { foreach (var fileName in files) { var id = Path.GetFileNameWithoutExtension(fileName); var sqlQuery = "SELECT ID FROM NOTES WHERE ID = '" + id + "'"; var o = oData.GetScalar(sqlQuery); if (o != null && !PNData.IsDBNull(o)) { var message = PNLang.Instance.GetMessageText("id_exists", "The note with the same ID already exists"); message += " (" + id + ")"; PNMessageBox.Show(message, PNStrings.PROG_NAME, MessageBoxButton.OK, MessageBoxImage.Exclamation); } else { var note = groupId > 0 ? new PNote(groupId) : new PNote(); note.ID = id; note.Visible = true; note.Dialog = new WndNote(note, fileName, NewNoteMode.File); note.Dialog.Show(); note.NoteSize = note.Dialog.GetSize(); note.NoteLocation = note.Dialog.GetLocation(); note.EditSize = note.Dialog.Edit.Size; PNStatic.Notes.Add(note); subscribeToNoteEvents(note); PNNotesOperations.SaveNewNote(note); if (id == null) continue; var newPath = Path.Combine(PNPaths.Instance.DataDir, id) + PNStrings.NOTE_EXTENSION; if (!File.Exists(newPath)) File.Copy(fileName, newPath, true); } } } } catch (Exception ex) { PNStatic.LogException(ex); } }
private string buildUpdateMenuString(SQLiteDataObject oData, string contextName, string menuName, int index) { try { var sb = new StringBuilder("SELECT ORDER_ORIGINAL FROM MENUS_ORDER WHERE CONTEXT_NAME = '"); sb.Append(contextName); sb.Append("' AND MENU_NAME = '"); sb.Append(menuName); sb.Append("'"); var obj = oData.GetScalar(sb.ToString()); if (obj != null && !PNData.IsDBNull(obj)) { if (Convert.ToInt32(obj) == index) return ""; } sb = new StringBuilder("UPDATE MENUS_ORDER SET ORDER_ORIGINAL = "); sb.Append(index); sb.Append(" WHERE CONTEXT_NAME = '"); sb.Append(contextName); sb.Append("' AND MENU_NAME = '"); sb.Append(menuName); sb.Append("'"); return sb.ToString(); } catch (Exception ex) { PNStatic.LogException(ex); return ""; } }
private void prepareServices(SQLiteDataObject oData) { try { //google data var obj = oData.GetScalar("SELECT COUNT(APP_NAME) FROM SERVICES WHERE APP_NAME = 'PNContactsLoader'"); if (obj == null || PNData.IsDBNull(obj) || Convert.ToInt32(obj) == 0) { oData.Execute( "INSERT INTO SERVICES (APP_NAME, CLIENT_ID, CLIENT_SECRET) VALUES('PNContactsLoader', '924809411382-kn585uq0fptek2kduvm6jj85cpdgjj5v.apps.googleusercontent.com','rY40+ZKA34bL+1wExbD3gxSEZTO8DE/iPmzHN/+qOUU=')"); } } catch (Exception ex) { PNStatic.LogException(ex); } }
private void startPreparingGroupsHotkeys(HotkeyType type, SQLiteDataObject oData, ref int id) { try { //delete possible duplicates first var sqlQuery = "SELECT MAX(GROUP_ID) FROM GROUPS"; var obj = oData.GetScalar(sqlQuery); if (obj == null || PNData.IsDBNull(obj)) return; var maxId = Convert.ToInt32(obj); var deleteList = new List<string>(); sqlQuery = "SELECT MENU_NAME, ID FROM HOT_KEYS WHERE HK_TYPE = 3"; using (var t = oData.FillDataTable(sqlQuery)) { foreach (DataRow r in t.Rows) { var arr = Convert.ToString(r["MENU_NAME"]).Split('_'); if (Convert.ToInt32(arr[0]) <= maxId) continue; var sb = new StringBuilder("DELETE FROM HOT_KEYS WHERE MENU_NAME = '"); sb.Append(r["MENU_NAME"]); sb.Append("' AND ID = "); sb.Append(r["ID"]); deleteList.Add(sb.ToString()); } } if (deleteList.Count > 0) { PNData.ExecuteTransactionForList(deleteList, oData.ConnectionString); } sqlQuery = "SELECT MENU_NAME FROM HOT_KEYS WHERE HK_TYPE = " + ((int)type).ToString(CultureInfo.InvariantCulture); using (var t = oData.FillDataTable(sqlQuery)) { var names = (from DataRow r in t.Rows select (string)r[0]).ToList(); var group = PNStatic.Groups.GetGroupByID((int)SpecialGroups.AllGroups); if (group != null) { foreach (var g in group.Subgroups) { prepareSingleGroupHotKey(g, oData, names, HotkeyType.Group, ref id); } } } loadSpecificHotKeys(type, oData); } catch (Exception ex) { PNStatic.LogException(ex); } }
private void prepareHotkeysTable(SQLiteDataObject oData) { var d = new WndNote(); try { var id = PNData.HK_START; var o = oData.GetScalar("SELECT MAX(ID) FROM HOT_KEYS"); if (o != null && !DBNull.Value.Equals(o)) { id = (int)(long)o + 1; } startPreparingMenuHotkeys(HotkeyType.Main, oData, ctmPN, ref id); startPreparingMenuHotkeys(HotkeyType.Note, oData, d.NoteMenu, ref id); startPreparingMenuHotkeys(HotkeyType.Edit, oData, d.EditMenu, ref id); startPreparingGroupsHotkeys(HotkeyType.Group, oData, ref id); } catch (Exception ex) { PNStatic.LogException(ex); } finally { d.Close(); } }