private bool importSearchProviders(string iniPath) { try { bool result = false; int size = 1024; var buffer = new string(' ', size); while (PNInterop.GetPrivateProfileString("search_engines", null, null, buffer, size, iniPath) == size - 2) { // loop until sufficient buffer size size *= 2; buffer = new string(' ', size); } var names = buffer.Split('\0'); var keys = names.Where(n => n.Trim().Length > 0); var sqlList = new List <string>(); var providers = new List <PNSearchProvider>(); foreach (var key in keys) { var query = new StringBuilder(1024); while ( PNInterop.GetPrivateProfileStringByBuilder("search_engines", key, "", query, query.Capacity, iniPath) == query.Capacity - 1) { query.Capacity *= 2; } providers.Add(new PNSearchProvider { Name = key, QueryString = query.ToString() }); var sb = new StringBuilder(); sb.Append("INSERT OR REPLACE INTO SEARCH_PROVIDERS (SP_NAME, SP_QUERY) VALUES("); sb.Append("'"); sb.Append(key); sb.Append("', "); sb.Append("'"); sb.Append(query); sb.Append("'"); sb.Append(")"); sqlList.Add(sb.ToString()); } if (sqlList.Count > 0 && PNData.ExecuteTransactionForList(sqlList, PNData.ConnectionString)) { result = true; foreach (var prv in providers) { PNStatic.SearchProviders.RemoveAll(pr => pr.Name == prv.Name); PNStatic.SearchProviders.Add(prv); } } return(result); } catch (Exception ex) { PNStatic.LogException(ex); return(false); } }
private bool saveMenus() { try { _OrderSql.Clear(); _TempHiddenMenus.Clear(); _MenusOrderChanged.Main = _MenusOrderChanged.Note = _MenusOrderChanged.Edit = _MenusOrderChanged.ControlPanel = false; if (!preSaveMenus(MenuType.Main, tvwMain)) { return(false); } if (!preSaveMenus(MenuType.Note, tvwNote)) { return(false); } if (!preSaveMenus(MenuType.Edit, tvwEdit)) { return(false); } if (!preSaveMenus(MenuType.ControlPanel, tvwCP)) { return(false); } PNStatic.HiddenMenus.Clear(); PNStatic.HiddenMenus.AddRange(_TempHiddenMenus); PNData.SaveHiddenMenus(); PNStatic.FormMain.RefreshHiddenMenus(); if (_OrderSql.Count > 0) { if (PNData.ExecuteTransactionForList(_OrderSql, PNData.ConnectionString)) { PNStatic.FormMain.ApplyNewMenusOrder(_MenusOrderChanged); } } return(true); } catch (Exception ex) { PNStatic.LogException(ex); return(false); } }
private bool importTags(string iniPath) { try { var result = false; var tags = new StringBuilder(1024); while ( PNInterop.GetPrivateProfileStringByBuilder("tags_pre", "tags", "", tags, tags.Capacity, iniPath) == tags.Capacity - 1) { tags.Capacity *= 2; } if (tags.Length > 0) { var arr = tags.ToString().Split(','); var listSql = new List <string>(); foreach (var tag in arr) { var sb = new StringBuilder(); sb.Append("INSERT OR REPLACE INTO TAGS (TAG) VALUES('"); sb.Append(tag); sb.Append("')"); listSql.Add(sb.ToString()); } if (PNData.ExecuteTransactionForList(listSql, PNData.ConnectionString)) { result = true; foreach (string tag in arr) { if (!PNStatic.Tags.Contains(tag)) { PNStatic.Tags.Add(tag); } } } } return(result); } catch (Exception ex) { PNStatic.LogException(ex); return(false); } }
private bool importExternals(string iniPath) { try { var result = false; var size = 1024; var buffer = new string(' ', size); while (PNInterop.GetPrivateProfileString("external_programs", null, null, buffer, size, iniPath) == size - 2) { // loop until sufficient buffer size size *= 2; buffer = new string(' ', size); } var names = buffer.Split('\0'); var keys = names.Where(n => n.Trim().Length > 0); var listSql = new List <string>(); var externals = new List <PNExternal>(); foreach (string key in keys) { var prog = new StringBuilder(1024); while ( PNInterop.GetPrivateProfileStringByBuilder("external_programs", key, "", prog, prog.Capacity, iniPath) == prog.Capacity - 1) { prog.Capacity *= 2; } var data = prog.ToString().Split((char)1); var ext = new PNExternal { Name = key, Program = data[0] }; var sb = new StringBuilder(); sb.Append("INSERT OR REPLACE INTO EXTERNALS (EXT_NAME, PROGRAM, COMMAND_LINE) VALUES("); sb.Append("'"); sb.Append(key); sb.Append("', "); sb.Append("'"); sb.Append(data[0]); sb.Append("', "); sb.Append("'"); if (data.Length == 2) { sb.Append(data[1]); ext.CommandLine = data[1]; } sb.Append("'"); sb.Append(")"); listSql.Add(sb.ToString()); externals.Add(ext); } if (listSql.Count > 0 && PNData.ExecuteTransactionForList(listSql, PNData.ConnectionString)) { result = true; foreach (PNExternal ext in externals) { PNStatic.Externals.RemoveAll(ex => ex.Name == ext.Name); PNStatic.Externals.Add(ext); } } return(result); } catch (Exception ex) { PNStatic.LogException(ex); return(false); } }
private bool importContacts(string iniPath) { try { var result = false; var size = 1024; var buffer = new string(' ', size); while (PNInterop.GetPrivateProfileString("contacts", null, null, buffer, size, iniPath) == size - 2) { // loop until sufficient buffer size size *= 2; buffer = new string(' ', size); } var names = buffer.Split('\0'); var keys = names.Where(n => n.Trim().Length > 0); var sqlList = new List <string>(); var contacts = new List <PNContact>(); int tempID = 0; if (PNStatic.Contacts.Count > 0) { tempID = PNStatic.Contacts.Max(c => c.ID) + 1; } foreach (var key in keys) { var cont = new PCONTPROP(); cont = PNInterop.ReadINIStructure(iniPath, "contacts", key, cont); if (cont.name != null && cont.name.Trim().Length > 0) { var pnc = new PNContact { ComputerName = cont.host, GroupID = cont.group, Name = cont.name, UseComputerName = cont.usename }; if (cont.address != 0) { pnc.IpAddress = buildAddressString(cont.address); } var temp = PNStatic.Contacts.FirstOrDefault(c => c.Name == pnc.Name); pnc.ID = temp != null ? temp.ID : tempID++; contacts.Add(pnc); } } // get contact froups size = 1024; buffer = new string(' ', size); while (PNInterop.GetPrivateProfileString("cont_groups", null, null, buffer, size, iniPath) == size - 2) { // loop until sufficient buffer size size *= 2; buffer = new string(' ', size); } names = buffer.Split('\0'); keys = names.Where(n => n.Trim().Length > 0); var groups = new List <PNContactGroup>(); tempID = 0; if (PNStatic.ContactGroups.Count > 0) { tempID = PNStatic.ContactGroups.Max(g => g.ID) + 1; } foreach (var key in keys) { var grp = new PCONTGROUP(); grp = PNInterop.ReadINIStructure(iniPath, "cont_groups", key, grp); if (grp.name == null || grp.name.Trim().Length <= 0) { continue; } var pg = new PNContactGroup { Name = grp.name }; var temp = PNStatic.ContactGroups.FirstOrDefault(g => g.Name == grp.name); pg.ID = temp != null ? temp.ID : tempID++; groups.Add(pg); } // build sql foreach (var pg in groups) { var sb = new StringBuilder(); sb.Append("INSERT OR REPLACE INTO CONTACT_GROUPS (ID, GROUP_NAME) VALUES("); sb.Append(pg.ID); sb.Append(", '"); sb.Append(pg.Name); sb.Append("')"); sqlList.Add(sb.ToString()); } foreach (var pc in contacts) { var sb = new StringBuilder(); sb.Append( "INSERT OR REPLACE INTO CONTACTS (ID, GROUP_ID, CONTACT_NAME, COMP_NAME, IP_ADDRESS, USE_COMP_NAME) VALUES("); sb.Append(pc.ID); sb.Append(", "); sb.Append(pc.GroupID); sb.Append(", '"); sb.Append(pc.Name); sb.Append("', '"); sb.Append(pc.ComputerName); sb.Append("', '"); sb.Append(pc.IpAddress); sb.Append("', "); sb.Append(Convert.ToInt32(pc.UseComputerName)); sb.Append(")"); sqlList.Add(sb.ToString()); } if (sqlList.Count > 0 && PNData.ExecuteTransactionForList(sqlList, PNData.ConnectionString)) { result = true; foreach (PNContactGroup pg in groups) { PNStatic.ContactGroups.RemoveAll(g => g.Name == pg.Name); PNStatic.ContactGroups.Add(pg); } foreach (PNContact pc in contacts) { PNStatic.Contacts.RemoveAll(c => c.Name == pc.Name); PNStatic.Contacts.Add(pc); } } return(result); } catch (Exception ex) { PNStatic.LogException(ex); return(false); } }