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 bool LoadNoteProperties(PNote note, DataRow r) { try { var sc = new SizeConverter(); var scd = new System.Drawing.SizeConverter(); var pc = new PointConverter(); note.FromDB = true; note.ID = (string)r["ID"]; note.Name = (string)r["NAME"]; note.GroupID = (int)r["GROUP_ID"]; note.PrevGroupID = (int)r["PREV_GROUP_ID"]; note.Opacity = (double)r["OPACITY"]; note.Visible = (bool)r["VISIBLE"]; note.Favorite = (bool)r["FAVORITE"]; note.Protected = (bool)r["PROTECTED"]; note.Completed = (bool)r["COMPLETED"]; note.Priority = (bool)r["PRIORITY"]; note.PasswordString = (string)r["PASSWORD_STRING"]; note.Pinned = (bool)r["PINNED"]; note.Topmost = (bool)r["TOPMOST"]; note.Rolled = (bool)r["ROLLED"]; note.DockStatus = (DockStatus)r["DOCK_STATUS"]; note.DockOrder = (int)r["DOCK_ORDER"]; note.SentReceived = (SendReceiveStatus)r["SEND_RECEIVE_STATUS"]; note.DateCreated = DateTime.Parse((string)r["DATE_CREATED"], PNStatic.CultureInvariant); note.DateSaved = DateTime.Parse((string)r["DATE_SAVED"], PNStatic.CultureInvariant); note.DateSent = DateTime.Parse((string)r["DATE_SENT"], PNStatic.CultureInvariant); note.DateReceived = DateTime.Parse((string)r["DATE_RECEIVED"], PNStatic.CultureInvariant); note.DateDeleted = DateTime.Parse((string)r["DATE_DELETED"], PNStatic.CultureInvariant); var convertFromString = sc.ConvertFromString(null, PNStatic.CultureInvariant, (string)r["SIZE"]); if (convertFromString != null) note.NoteSize = (Size)convertFromString; convertFromString = pc.ConvertFromString(null, PNStatic.CultureInvariant, (string)r["LOCATION"]); if (convertFromString != null) note.NoteLocation = (Point)convertFromString; convertFromString = scd.ConvertFromString(null, PNStatic.CultureInvariant, (string)r["EDIT_SIZE"]); if (convertFromString != null) note.EditSize = (System.Drawing.Size)convertFromString; note.XFactor = (double)r["REL_X"]; note.YFactor = (double)r["REL_Y"]; note.SentTo = (string)r["SENT_TO"]; note.ReceivedFrom = (string)r["RECEIVED_FROM"]; note.ReceivedIp = !PNData.IsDBNull(r["RECEIVED_IP"]) ? (string) r["RECEIVED_IP"] : ""; note.PinClass = (string)r["PIN_CLASS"]; note.PinText = (string)r["PIN_TEXT"]; note.Scrambled = !PNData.IsDBNull(r["SCRAMBLED"]) && (bool)r["SCRAMBLED"]; note.Thumbnail = !PNData.IsDBNull(r["THUMBNAIL"]) && (bool)r["THUMBNAIL"]; return loadNoteSchedule(note); } catch (Exception ex) { PNStatic.LogException(ex); return false; } }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { var str = value as string; if (str != null) { var note = new PNote(); var values = str.Split(DEL_NOTE); if (values.Length == Enum.GetValues(typeof(Fields)).Length) { string[] arr; var dtc = new DateTimeConverter(); var szc = new SizeConverter(); var scd = new System.Drawing.SizeConverter(); var ptc = new PointConverter(); var scv = new ScheduleConverter(); var skc = new SkinlessConverter(); note.Changed = Convert.ToBoolean(values[(int)Fields.Changed]); note.Completed = Convert.ToBoolean(values[(int)Fields.Completed]); note.CustomOpacity = Convert.ToBoolean(values[(int)Fields.CustomOpacity]); var dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateCreated]); if (dateFromString != null) note.DateCreated = (DateTime)dateFromString; dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateDeleted]); if (dateFromString != null) note.DateDeleted = (DateTime)dateFromString; dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateReceived]); if (dateFromString != null) note.DateReceived = (DateTime)dateFromString; dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateSaved]); if (dateFromString != null) note.DateSaved = (DateTime)dateFromString; dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateSent]); if (dateFromString != null) note.DateSent = (DateTime)dateFromString; note.DockStatus = (DockStatus)Convert.ToInt32(values[(int)Fields.DockStatus]); var sizeFromString = scd.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.EditSize]); if (sizeFromString != null) note.EditSize = (Size)sizeFromString; note.Favorite = Convert.ToBoolean(values[(int)Fields.Favorite]); note.FromDB = Convert.ToBoolean(values[(int)Fields.FromDB]); note.GroupID = Convert.ToInt32(values[(int)Fields.GroupID]); note.ID = values[(int)Fields.ID]; var temp = values[(int)Fields.LinkedNotes]; if (temp != "") { arr = temp.Split(DEL_INNER); foreach (var s in arr) { note.LinkedNotes.Add(s); } } note.Name = values[(int)Fields.Name]; var convertFromString = ptc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.NoteLocation]); if (convertFromString != null) note.NoteLocation = (Point)convertFromString; var fromString = szc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.NoteSize]); if (fromString != null) note.NoteSize = (System.Windows.Size)fromString; note.Opacity = Convert.ToDouble(values[(int)Fields.Opacity], PNStatic.CultureInvariant); note.PasswordString = values[(int)Fields.PasswordString]; note.Pinned = Convert.ToBoolean(values[(int)Fields.Pinned]); note.PrevGroupID = Convert.ToInt32(values[(int)Fields.PrevGroupID]); note.Priority = Convert.ToBoolean(values[(int)Fields.Priority]); note.Protected = Convert.ToBoolean(values[(int)Fields.Protected]); note.ReceivedFrom = values[(int)Fields.ReceivedFrom]; note.Rolled = Convert.ToBoolean(values[(int)Fields.Rolled]); note.Schedule = (PNNoteSchedule)scv.ConvertFromString(values[(int)Fields.Schedule]); note.SentReceived = (SendReceiveStatus)Convert.ToInt32(values[(int)Fields.SentReceived]); note.SentTo = values[(int)Fields.SentTo]; temp = values[(int)Fields.SkinName]; if (temp != PNSkinDetails.NO_SKIN && temp != "") { // TODO - get skin properties } note.Skinless = (PNSkinlessDetails)skc.ConvertFromString(values[(int)Fields.Skinless]); temp = values[(int)Fields.Tags]; if (temp != "") { arr = temp.Split(DEL_INNER); foreach (var s in arr) { note.Tags.Add(s); } } note.Topmost = Convert.ToBoolean(values[(int)Fields.Topmost]); note.Visible = Convert.ToBoolean(values[(int)Fields.Visible]); note.XFactor = Convert.ToDouble(values[(int)Fields.XFactor], PNStatic.CultureInvariant); note.YFactor = Convert.ToDouble(values[(int)Fields.YFactor], PNStatic.CultureInvariant); note.PinClass = values[(int)Fields.PinClass]; note.PinText = values[(int)Fields.PinText]; } return note; } return base.ConvertFrom(context, culture, value); }