internal bool deleteArea(Framework.Data.AreaType level, string areaName) { PreLoadAreaInfo(); bool result = true; try { List <Framework.Data.AreaInfo> ail = GetAreasByName(areaName, level); if (ail.Count > 0) { foreach (Framework.Data.AreaInfo ai in ail) { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFilename)) { dbcon.ExecuteNonQuery(string.Format("delete from poly where areainfoid={0}", ai.ID)); dbcon.ExecuteNonQuery(string.Format("delete from areainfo where id={0}", ai.ID)); _cachedAreaInfo.Remove(ai); } } } } catch { result = false; } return(result); }
private Utils.DBCon initDatabase() { Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFile); object o = dbcon.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='scripts'"); if (o == null || o.GetType() == typeof(DBNull)) { dbcon.ExecuteNonQuery("create table 'scripts' (id text, name text, scripttype text, content text)"); } o = dbcon.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='settings'"); if (o == null || o.GetType() == typeof(DBNull)) { dbcon.ExecuteNonQuery("create table 'settings' (scriptid text, enable integer, pos integer)"); } return(dbcon); }
internal bool deleteArea(Framework.Data.AreaInfo ai) { bool result = true; try { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFilename)) { dbcon.ExecuteNonQuery(string.Format("delete from poly where areainfoid={0}", ai.ID)); dbcon.ExecuteNonQuery(string.Format("delete from areainfo where id={0}", ai.ID)); _cachedAreaInfo.Remove(ai); } } catch { result = false; } return(result); }
private Utils.DBCon initDatabase() { Utils.DBCon result = null; try { string fn = System.IO.Path.Combine(_core.PluginDataPath, "coordsav.db3"); if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(fn))) { System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(fn)); } result = new Utils.DBConComSqlite(fn); object o = result.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='coord'"); if (o == null || o.GetType() == typeof(DBNull)) { result.ExecuteNonQuery("create table 'coord' (code text, lat real, lon real)"); result.ExecuteNonQuery("create unique index idx_coord on coord (code)"); } } catch { } return(result); }
public void Clear() { try { foreach (Hashtable ht in _filterFields.Values) { ht.Clear(); } using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFile)) { dbcon.ExecuteNonQuery("delete from filterfields"); } } catch { } }
internal bool setParent(Framework.Data.AreaInfo ai, Framework.Data.AreaInfo parent) { bool result = true; try { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFilename)) { dbcon.ExecuteNonQuery(string.Format("update areainfo set parentid= where id={0}", ai.ID, parent == null ? "NULL" : parent.ID)); ai.ParentID = parent == null ? null : parent.ID; } } catch { result = false; } return(result); }
private Utils.DBCon initDatabase() { Utils.DBCon dbcon; try { dbcon = new Utils.DBConComSqlite(_databaseFile); object o = dbcon.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='gallery'"); if (o == null || o.GetType() == typeof(DBNull)) { dbcon.ExecuteNonQuery("create table 'gallery' (ImageGuid text, ThumbUrl text, Description text, Name text, MobileUrl text, Url text, LogCacheCode text, LogCode text, LogUrl text, LogVisitDate text, ThumbFile text, ImgFile text)"); } } catch { dbcon = null; } return(dbcon); }
internal bool deleteArea(Framework.Data.AreaInfo ai) { bool result = true; try { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFilename)) { dbcon.ExecuteNonQuery(string.Format("delete from poly where areainfoid={0}", ai.ID)); dbcon.ExecuteNonQuery(string.Format("delete from areainfo where id={0}", ai.ID)); _cachedAreaInfo.Remove(ai); } } catch { result = false; } return result; }
internal bool deleteArea(Framework.Data.AreaType level, string areaName) { PreLoadAreaInfo(); bool result = true; try { List<Framework.Data.AreaInfo> ail = GetAreasByName(areaName, level); if (ail.Count > 0) { foreach (Framework.Data.AreaInfo ai in ail) { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFilename)) { dbcon.ExecuteNonQuery(string.Format("delete from poly where areainfoid={0}", ai.ID)); dbcon.ExecuteNonQuery(string.Format("delete from areainfo where id={0}", ai.ID)); _cachedAreaInfo.Remove(ai); } } } } catch { result = false; } return result; }
private void execSQL(string q) { _db.ExecuteNonQuery(q); }
internal bool setParent(Framework.Data.AreaInfo ai, Framework.Data.AreaInfo parent) { bool result = true; try { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFilename)) { dbcon.ExecuteNonQuery(string.Format("update areainfo set parentid= where id={0}", ai.ID, parent == null ? "NULL" : parent.ID)); ai.ParentID = parent == null ? null : parent.ID; } } catch { result = false; } return result; }
private void newPreset() { //check if saved preset string presetname = null; using (PresetNameForm dlg = new PresetNameForm(_presets)) { if (dlg.ShowDialog() == DialogResult.OK) { presetname = dlg.PresetName; } } if (!string.IsNullOrEmpty(presetname)) { try { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_presetDatabaseFile)) { initDatabase(dbcon); if (!_presets.Contains(presetname)) { //we need to add the action AddAction(string.Concat("Presets|",presetname)); Framework.Interfaces.IPluginUIMainWindow main = (from Framework.Interfaces.IPluginUIMainWindow a in Core.GetPlugin(Framework.PluginType.UIMainWindow) select a).FirstOrDefault(); main.AddAction(this, "Presets", presetname); _presets.Add(presetname); } dbcon.ExecuteNonQuery(string.Format("delete from forms where preset='{0}'", presetname)); dbcon.ExecuteNonQuery(string.Format("delete from preset where name='{0}'", presetname)); dbcon.ExecuteNonQuery(string.Format("insert into preset (name) values ('{0}')", presetname)); List<Framework.Interfaces.IPlugin> pins = Core.GetPlugins(); foreach (Framework.Interfaces.IPlugin pin in pins) { Framework.Interfaces.IPluginUIChildWindow p = pin as Framework.Interfaces.IPluginUIChildWindow; if (p != null) { if (p.ChildForm != null && p.ChildForm.Visible) { dbcon.ExecuteNonQuery(string.Format("insert into forms (preset, plugintype, x, y, w, h, visible) values ('{0}', '{1}', {2}, {3}, {4}, {5}, 1)", presetname, p.GetType().ToString(), p.ChildForm.Left, p.ChildForm.Top, p.ChildForm.Width, p.ChildForm.Height)); } else { dbcon.ExecuteNonQuery(string.Format("insert into forms (preset, plugintype, x, y, w, h, visible) values ('{0}', '{1}', 0, 0, 100, 100, 0)", presetname, p.GetType().ToString())); } } else if (pin.GetType().ToString() == "GlobalcachingApplication.Plugins.Maps.MapsPlugin") { //special onw try { MethodInfo mi = pin.GetType().GetMethod("GetWindowStateText"); if (mi != null) { string s = mi.Invoke(pin, null) as string; if (s != null) { dbcon.ExecuteNonQuery(string.Format("insert into forms (preset, plugintype, x, y, w, h, visible, customtag) values ('{0}', '{1}', 0, 0, 100, 100, 0, '{2}')", presetname, pin.GetType().ToString(), s.Replace("'", "''"))); } } } catch { } } } } } catch { } } }
protected override void ExportMethod() { int max = _gcList.Count; int index = 0; Hashtable htAttributes = new Hashtable(); htAttributes[1] = "dogs"; htAttributes[2] = "fee"; htAttributes[3] = "rappelling"; htAttributes[4] = "boat"; htAttributes[5] = "scuba"; htAttributes[6] = "kids"; htAttributes[7] = "onehour"; htAttributes[8] = "scenic"; htAttributes[9] = "hiking"; htAttributes[10] = "climbing"; htAttributes[11] = "wading"; htAttributes[12] = "swimming"; htAttributes[13] = "available"; htAttributes[14] = "night"; htAttributes[15] = "winter"; htAttributes[16] = "cactus"; htAttributes[17] = "poisonoak"; htAttributes[18] = "dangerousanimals"; htAttributes[19] = "ticks"; htAttributes[20] = "mine"; htAttributes[21] = "cliff"; htAttributes[22] = "hunting"; htAttributes[23] = "danger"; htAttributes[24] = "wheelchair"; htAttributes[25] = "parking"; htAttributes[26] = "public"; htAttributes[27] = "water"; htAttributes[28] = "restrooms"; htAttributes[29] = "phone"; htAttributes[30] = "picnic"; htAttributes[31] = "camping"; htAttributes[32] = "bicycles"; htAttributes[33] = "motorcycles"; htAttributes[34] = "quads"; htAttributes[35] = "jeeps"; htAttributes[36] = "snowmobiles"; htAttributes[37] = "horses"; htAttributes[38] = "campfires"; htAttributes[39] = "thorn"; htAttributes[40] = "stealth"; htAttributes[41] = "stroller"; htAttributes[42] = "firstaid"; htAttributes[43] = "cow"; htAttributes[44] = "flashlight"; htAttributes[45] = "landf"; htAttributes[46] = "rv"; htAttributes[47] = "field_puzzle"; htAttributes[48] = "UV"; htAttributes[49] = "snowshoes"; htAttributes[50] = "skiis"; htAttributes[51] = "s-tool"; htAttributes[52] = "nightcache"; htAttributes[53] = "parkngrab"; htAttributes[54] = "AbandonedBuilding"; htAttributes[55] = "hike_short"; htAttributes[56] = "hike_med"; htAttributes[57] = "hike_long"; htAttributes[58] = "fuel"; htAttributes[59] = "food"; htAttributes[60] = "wirelessbeacon"; htAttributes[61] = "partnership"; htAttributes[62] = "seasonal"; htAttributes[63] = "touristOK"; htAttributes[64] = "treeclimbing"; htAttributes[65] = "frontyard"; htAttributes[66] = "teamwork"; htAttributes[67] = "geotour"; using (Utils.ProgressBlock progress = new Utils.ProgressBlock(this, STR_EXPORTINGCB, STR_CREATINGFILE, max, 0, true)) { string cbFile = System.IO.Path.Combine(_folder, "cgeo.sqlite"); string cbDataFile = System.IO.Path.Combine(_folder, "data"); if (System.IO.File.Exists(cbFile)) { System.IO.File.Delete(cbFile); } if (System.IO.File.Exists(cbDataFile)) { System.IO.File.Delete(cbDataFile); } CreateDatabase(cbFile); if (_dbcon != null) { _dbcon.ExecuteNonQuery("CREATE TABLE android_metadata (locale TEXT)"); _dbcon.ExecuteNonQuery("INSERT INTO android_metadata VALUES('en_US')"); //_dbcon.ExecuteNonQuery("CREATE TABLE sqlite_sequence (name, seq)"); DbCommand cmd = _dbcon.Command; int detailed = 1; int reason = 1; int reliable_latlon = 1; DateTime dt = DateTime.Now.AddSeconds(2); foreach (Framework.Data.Geocache gc in _gcList) { //---------------------------- // CACHE //---------------------------- cmd.Parameters.Clear(); cmd.CommandText = "insert into cg_caches (updated, detailed, detailedupdate, visiteddate, geocode, reason, cacheid, guid, type, name, owner, owner_real, hidden, hint, size, difficulty, terrain, latlon, location, latitude, longitude, reliable_latlon, personal_note, shortdesc, description, favourite_cnt, disabled, archived, members, found, coordsChanged, finalDefined) values (@updated, 1, @detailedupdate, @visiteddate, @geocode, @reason, @cacheid, @guid, @type, @name, @owner, @owner_real, @hidden, @hint, @size, @difficulty, @terrain, @latlon, @location, @latitude, @longitude, @reliable_latlon, @personal_note, @shortdesc, @description, @favourite_cnt, @disabled, @archived, @members, @found, @coordsChanged, @finalDefined)"; DbParameter par; par = cmd.CreateParameter(); par.ParameterName = "@updated"; par.DbType = DbType.Int64; par.Value = GetcgeoTime(DateTime.Now); cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@detailed"; par.DbType = DbType.Int32; par.Value = detailed; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@detailedupdate"; par.DbType = DbType.UInt64; par.Value = GetcgeoTime(DateTime.Now); cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@visiteddate"; par.DbType = DbType.UInt64; if (gc.FoundDate == null) { par.Value = 0; } else { par.Value = GetcgeoTime((DateTime)gc.FoundDate); } cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@geocode"; par.DbType = DbType.String; par.Value = gc.Code; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@reason"; par.DbType = DbType.Int32; par.Value = reason; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@cacheid"; par.DbType = DbType.String; if (gc.ID.StartsWith("GC")) { par.Value = Utils.Conversion.GetCacheIDFromCacheCode(gc.Code).ToString(); } else { par.Value = gc.ID; } cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@guid"; par.DbType = DbType.String; par.Value = DBNull.Value; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@type"; par.DbType = DbType.String; par.Value = gc.GeocacheType.GPXTag.Split(new char[] { ' ', '-' })[0].ToLower(); cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@name"; par.DbType = DbType.String; par.Value = gc.Name ?? ""; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@owner"; par.DbType = DbType.String; par.Value = gc.PlacedBy ?? ""; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@owner_real"; par.DbType = DbType.String; par.Value = gc.Owner ?? ""; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@hidden"; par.DbType = DbType.UInt64; par.Value = GetcgeoTime(gc.PublishedTime); cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@hint"; par.DbType = DbType.String; par.Value = gc.EncodedHints ?? ""; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@size"; par.DbType = DbType.String; par.Value = gc.Container.Name.ToLower(); cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@difficulty"; par.DbType = DbType.Single; par.Value = (float)gc.Difficulty; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@terrain"; par.DbType = DbType.Single; par.Value = (float)gc.Terrain; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@latlon"; par.DbType = DbType.String; par.Value = DBNull.Value; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@location"; par.DbType = DbType.String; if (string.IsNullOrEmpty(gc.State)) { par.Value = gc.Country ?? ""; } else { par.Value = string.Format("{0}, {1}", gc.State, gc.Country ?? ""); } cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@latitude"; par.DbType = DbType.Double; par.Value = gc.ContainsCustomLatLon ? gc.CustomLat : gc.Lat; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@longitude"; par.DbType = DbType.Double; par.Value = gc.ContainsCustomLatLon ? gc.CustomLon : gc.Lon; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@reliable_latlon"; par.DbType = DbType.Int32; par.Value = reliable_latlon; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@personal_note"; par.DbType = DbType.String; par.Value = gc.PersonaleNote ?? ""; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@shortdesc"; par.DbType = DbType.String; if (gc.ShortDescriptionInHtml) { par.Value = gc.ShortDescription ?? ""; } else { par.Value = HttpUtility.HtmlEncode(gc.ShortDescription ?? ""); } cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@description"; par.DbType = DbType.String; if (gc.LongDescriptionInHtml) { par.Value = gc.LongDescription ?? ""; } else { par.Value = HttpUtility.HtmlEncode(gc.LongDescription ?? ""); } cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@favourite_cnt"; par.DbType = DbType.Int32; par.Value = gc.Favorites; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@disabled"; par.DbType = DbType.Int32; par.Value = gc.Available ? 0 : 1; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@archived"; par.DbType = DbType.Int32; par.Value = gc.Archived ? 1 : 0; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@members"; par.DbType = DbType.Int32; par.Value = gc.MemberOnly ? 1 : 0; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@found"; par.DbType = DbType.Int32; par.Value = gc.Found ? 1 : 0; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@coordsChanged"; par.DbType = DbType.Int32; par.Value = gc.CustomCoords ? 1 : 0; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@finalDefined"; par.DbType = DbType.Int32; par.Value = 0; cmd.Parameters.Add(par); int res = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); //---------------------------- // ATTRIBUTES //---------------------------- List <int> attrs = gc.AttributeIds; if (attrs != null && attrs.Count > 0) { cmd.CommandText = "insert into cg_attributes (geocode, updated, attribute) values (@geocode, @updated, @attribute)"; par = cmd.CreateParameter(); par.ParameterName = "@geocode"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@updated"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@attribute"; par.DbType = DbType.String; cmd.Parameters.Add(par); foreach (int att in attrs) { string atname = htAttributes[Math.Abs(att)] as string; if (!string.IsNullOrEmpty(atname)) { atname = atname.ToLower(); cmd.Parameters["@geocode"].Value = gc.Code; cmd.Parameters["@updated"].Value = GetcgeoTime(DateTime.Now); cmd.Parameters["@attribute"].Value = att > 0 ? string.Format("{0}_yes", atname) : string.Format("{0}_no", atname); cmd.ExecuteNonQuery(); } } cmd.Parameters.Clear(); } //---------------------------- // WAYPOINTS //---------------------------- List <Framework.Data.Waypoint> wpts = Utils.DataAccess.GetWaypointsFromGeocache(Core.Waypoints, gc.Code); if (wpts != null && wpts.Count > 0) { cmd.CommandText = "insert into cg_waypoints (geocode, updated, type, prefix, lookup, name, latlon, latitude, longitude, note) values (@geocode, @updated, @type, @prefix, @lookup, @name, @latlon, @latitude, @longitude, @note)"; par = cmd.CreateParameter(); par.ParameterName = "@geocode"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@updated"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@type"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@prefix"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@lookup"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@name"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@latlon"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@latitude"; par.DbType = DbType.Double; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@longitude"; par.DbType = DbType.Double; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@note"; par.DbType = DbType.String; cmd.Parameters.Add(par); foreach (Framework.Data.Waypoint wp in wpts) { if (wp.Lat != null && wp.Lon != null) { cmd.Parameters["@geocode"].Value = gc.Code; cmd.Parameters["@updated"].Value = GetcgeoTime(DateTime.Now); switch (wp.WPType.ID) { case 217: cmd.Parameters["@type"].Value = "pkg"; break; case 220: cmd.Parameters["@type"].Value = "flag"; break; case 218: cmd.Parameters["@type"].Value = "puzzle"; break; case 452: cmd.Parameters["@type"].Value = "waypoint"; break; case 219: cmd.Parameters["@type"].Value = "stage"; break; case 221: cmd.Parameters["@type"].Value = "trailhead"; break; default: cmd.Parameters["@type"].Value = "waypoint"; break; } cmd.Parameters["@prefix"].Value = wp.Code.Substring(0, 2); cmd.Parameters["@lookup"].Value = "---"; cmd.Parameters["@name"].Value = wp.Description ?? ""; cmd.Parameters["@latlon"].Value = Utils.Conversion.GetCoordinatesPresentation((double)wp.Lat, (double)wp.Lon); cmd.Parameters["@latitude"].Value = (double)wp.Lat; cmd.Parameters["@longitude"].Value = (double)wp.Lon; cmd.Parameters["@note"].Value = wp.Comment ?? ""; cmd.ExecuteNonQuery(); } } cmd.Parameters.Clear(); } //---------------------------- // LOGS //---------------------------- List <Framework.Data.Log> lgs = Utils.DataAccess.GetLogs(Core.Logs, gc.Code); if (lgs != null && lgs.Count > 0) { cmd.CommandText = "insert into cg_logs (geocode, updated, type, author, log, date, friend) values (@geocode, @updated, @type, @author, @log, @date, 0)"; par = cmd.CreateParameter(); par.ParameterName = "@geocode"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@updated"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@type"; par.DbType = DbType.Int32; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@author"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@log"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@date"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); foreach (Framework.Data.Log lg in lgs) { cmd.Parameters["@geocode"].Value = gc.Code; cmd.Parameters["@updated"].Value = GetcgeoTime(DateTime.Now); cmd.Parameters["@type"].Value = lg.LogType.ID; cmd.Parameters["@author"].Value = lg.Finder ?? ""; cmd.Parameters["@log"].Value = HttpUtility.HtmlEncode(lg.Text ?? "").Replace("\r", "").Replace("\n", "<br />"); cmd.Parameters["@date"].Value = GetcgeoTime(lg.Date); cmd.ExecuteNonQuery(); } cmd.Parameters.Clear(); } index++; if (DateTime.Now > dt) { if (!progress.UpdateProgress(STR_EXPORTINGCB, STR_CREATINGFILE, max, index)) { break; } dt = DateTime.Now.AddSeconds(2); } } //_dbcon.ExecuteNonQuery(string.Format("insert into sqlite_sequence (name, seq) values ('cg_caches', {0})", index)); _dbcon.Dispose(); _dbcon = null; //not working. you have to go through recover database on c:geo //System.IO.File.Copy(cbFile, cbDataFile); } } }
private Utils.DBCon initDatabase() { Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFile); object o = dbcon.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='scripts'"); if (o == null || o.GetType() == typeof(DBNull)) { dbcon.ExecuteNonQuery("create table 'scripts' (id text, name text, scripttype text, content text)"); } o = dbcon.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='settings'"); if (o == null || o.GetType() == typeof(DBNull)) { dbcon.ExecuteNonQuery("create table 'settings' (scriptid text, enable integer, pos integer)"); } return dbcon; }
private void initDatabase() { string xmlFileContents; Assembly assembly = Assembly.GetExecutingAssembly(); using (StreamReader textStreamReader = new StreamReader(assembly.GetManifestResourceStream("GlobalcachingApplication.Plugins.LanguageEng.LookupDictionary.xml"))) { xmlFileContents = textStreamReader.ReadToEnd(); } XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlFileContents); XmlElement root = doc.DocumentElement; XmlNodeList strngs = root.SelectNodes("string"); if (strngs != null) { foreach (XmlNode sn in strngs) { if (!string.IsNullOrEmpty(sn.Attributes["value"].InnerText)) { _fixedLookupTable[sn.Attributes["name"].InnerText.ToLower()] = sn.Attributes["value"].InnerText; } } } try { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_customDictionaryDatabaseFile)) { object o = dbcon.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='translation'"); if (o == null || o.GetType() == typeof(DBNull)) { dbcon.ExecuteNonQuery("create table 'translation' (item_name text, item_value text)"); } DbDataReader dr = dbcon.ExecuteReader("select * from translation"); while (dr.Read()) { _customLookupTable[dr["item_name"].ToString().ToLower()] = dr["item_value"].ToString(); } } } catch { } }
private Utils.DBCon initDatabase() { Utils.DBCon dbcon; try { dbcon = new Utils.DBConComSqlite(_databaseFile); object o = dbcon.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='gallery'"); if (o == null || o.GetType() == typeof(DBNull)) { dbcon.ExecuteNonQuery("create table 'gallery' (ImageGuid text, ThumbUrl text, Description text, Name text, MobileUrl text, Url text, LogCacheCode text, LogCode text, LogUrl text, LogVisitDate text, ThumbFile text, ImgFile text)"); } } catch { dbcon = null; } return dbcon; }
public void RemoveFilter(FilterField field, string filter) { try { Hashtable ht = _filterFields[field.ToString()] as Hashtable; if (ht != null) { if (ht[filter]!=null) { ht.Remove(filter); using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFile)) { dbcon.ExecuteNonQuery(string.Format("delete from filterfields where field = '{0}' and filter = '{1}'", field.ToString(), filter.Replace("'", "''"))); } } } } catch { } }
private void InitDatabase() { try { if (!string.IsNullOrEmpty(_databaseFile)) { Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFile); object o = dbcon.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='filterfields'"); if (o == null || o.GetType() == typeof(DBNull)) { dbcon.ExecuteNonQuery("create table 'filterfields' (field text, filter text)"); } } } catch { } }
public void AddCodes(List<string> codes) { try { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFile)) { Hashtable ht = _filterFields[FilterField.GeocacheCode.ToString()] as Hashtable; if (ht != null) { foreach (string filter in codes) { if (ht[filter.ToUpper()]==null) { ht.Add(filter.ToUpper(), true); dbcon.ExecuteNonQuery(string.Format("insert into filterfields (field, filter) values ('{0}', '{1}')", FilterField.GeocacheCode.ToString(), filter.ToUpper().Replace("'", "''"))); } } } } } catch { } }
public void AddFilter(FilterField field, string filter) { try { Hashtable ht = _filterFields[field.ToString()] as Hashtable; if (ht != null) { if (ht[filter]==null) { ht.Add(filter, true); using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFile)) { dbcon.ExecuteNonQuery(string.Format("insert into filterfields (field, filter) values ('{0}', '{1}')", field.ToString(), filter.Replace("'", "''"))); } } } } catch { } }
internal bool processTextFile(Framework.Data.AreaType level, string f, Framework.Data.AreaInfo parent) { PreLoadAreaInfo(); bool result = false; try { //filename = AreaName string areaName = System.IO.Path.GetFileNameWithoutExtension(f); char[] num = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; int pos = 0; while (pos < areaName.Length && !num.Contains(areaName[pos])) pos++; areaName = areaName.Substring(0, pos); string[] lines = System.IO.File.ReadAllLines(f); pos = 0; if (lines[0].StartsWith("# GsakName=")) { areaName = lines[0].Substring(lines[0].IndexOf('=')+1).Trim(); pos++; } string slat = ""; string slon = ""; double lat; double lon; bool newPoly; Framework.Data.AreaInfo ai; List<Framework.Data.AreaInfo> ailist = GetAreasByName(areaName, level); bool firstPoint = true; if (ailist.Count > 0) { ai = ailist[0]; firstPoint = false; newPoly = false; } else { newPoly = true; ai = new Framework.Data.AreaInfo(); ai.ID = _maxAreaInfoId + 1; _maxAreaInfoId++; ai.Name = areaName; ai.Level = level; ai.Polygons = new List<Framework.Data.Polygon>(); } Framework.Data.Polygon poly = new Framework.Data.Polygon(); _maxPolyId++; using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFilename)) { dbcon.BeginTran(); while (pos < lines.Length) { string s = lines[pos].Trim(); if (!s.StartsWith("#")) { string[] parts = s.Split(new char[] { ' ', ',', '\t'}, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 2) { lat = Utils.Conversion.StringToDouble(parts[0]); lon = Utils.Conversion.StringToDouble(parts[1]); if (firstPoint) { ai.MinLat = lat; ai.MaxLat = lat; ai.MinLon = lon; ai.MaxLon = lon; firstPoint = false; } else { if (lat < ai.MinLat) ai.MinLat = lat; if (lat > ai.MaxLat) ai.MaxLat = lat; if (lon < ai.MinLon) ai.MinLon = lon; if (lon > ai.MaxLon) ai.MaxLon = lon; } poly.AddLocation(new Framework.Data.Location(lat, lon)); dbcon.ExecuteNonQuery(string.Format("insert into poly (id, areainfoid, position, lat, lon) values ({0}, {1}, {2}, {3}, {4})", _maxPolyId, ai.ID, poly.Count, lat.ToString().Replace(',', '.'), lon.ToString().Replace(',', '.'))); if (poly.Count == 1) { slat = parts[0]; slon = parts[1]; ai.Polygons.Add(poly); } else if (slat == parts[0] && slon == parts[1]) { poly = new Framework.Data.Polygon(); _maxPolyId++; } } } pos++; } if (newPoly) { _cachedAreaInfo.Add(ai); dbcon.ExecuteNonQuery(string.Format("insert into areainfo (id, parentid, level, name, minlat, minlon, maxlat, maxlon) values ({0}, {1}, {2}, '{3}', {4}, {5}, {6}, {7})", ai.ID, parent == null ? "NULL" : parent.ID, (short)ai.Level, ai.Name.Replace("'", "''"), ai.MinLat.ToString().Replace(',', '.'), ai.MinLon.ToString().Replace(',', '.'), ai.MaxLat.ToString().Replace(',', '.'), ai.MaxLon.ToString().Replace(',', '.'))); } else { dbcon.ExecuteNonQuery(string.Format("update areainfo set parentid={0}, minlat={1}, minlon={2}, maxlat={3}, maxlon={4} where id={5}", parent == null ? "NULL" : parent.ID, ai.MinLat.ToString().Replace(',', '.'), ai.MinLon.ToString().Replace(',', '.'), ai.MaxLat.ToString().Replace(',', '.'), ai.MaxLon.ToString().Replace(',', '.'), ai.ID)); } dbcon.CommitTran(); result = true; } } catch { } return result; }
public override bool ApplySettings(List<System.Windows.Forms.UserControl> configPanels) { try { SettingsPanel panel = (from p in configPanels where p.GetType() == typeof(SettingsPanel) select p).FirstOrDefault() as SettingsPanel; panel.ApplyShortcuts(Core); using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_shortcutDatabaseFile)) { initDatabase(dbcon); dbcon.ExecuteNonQuery("delete from shortcut"); foreach (Framework.Data.ShortcutInfo scuts in Core.ShortcutInfo) { dbcon.ExecuteNonQuery(string.Format("insert into shortcut (plugintype, action, subaction, keys, keystring) values ('{0}', '{1}', '{2}', {3}, '{4}')", scuts.PluginType, scuts.PluginAction.Replace("'", "''"), scuts.PluginSubAction.Replace("'", "''"), (int)scuts.ShortcutKeys, scuts.ShortcutKeyString.Replace("'", "''"))); } } Core.OnShortcutInfoChanged(); } catch { } return true; }
public override bool ApplySettings(List<System.Windows.Forms.UserControl> configPanels) { foreach (System.Windows.Forms.UserControl uc in configPanels) { if (uc is SettingsPanel) { SettingsPanel sp = uc as SettingsPanel; List<DictionaryItem> dict = (List<DictionaryItem>)sp.dictionaryEdit1.dataGrid1.ItemsSource; try { bool changed = false; using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_customDictionaryDatabaseFile)) { foreach (DictionaryItem di in dict) { string s = _fixedLookupTable[di.Key.ToLower()] as string; string cs = _customLookupTable[di.Key.ToLower()] as string; if (string.IsNullOrEmpty(di.Value) || di.Value==s) { //remove from custom if (!string.IsNullOrEmpty(cs)) { dbcon.ExecuteNonQuery(string.Format("delete from translation where item_name='{0}'", di.Key.ToLower().Replace("'", "''"))); _customLookupTable.Remove(di.Key.ToLower()); changed = true; } } else if (di.Value!=s && di.Value!=cs) { _customLookupTable[di.Key.ToLower()] = di.Value; if (dbcon.ExecuteNonQuery(string.Format("update translation set item_value='{1}' where item_name='{0}'", di.Key.ToLower().Replace("'", "''"), di.Value.Replace("'", "''"))) == 0) { dbcon.ExecuteNonQuery(string.Format("insert into translation (item_name, item_value) values ('{0}', '{1}')", di.Key.ToLower().Replace("'", "''"), di.Value.Replace("'", "''"))); } changed = true; } } } #if DEBUG if (true) #else if (changed) #endif { List<DictionaryItem> sortedDict = (from a in dict orderby a.Key select a).ToList(); XmlDocument doc = new XmlDocument(); XmlElement root = doc.CreateElement("resources"); foreach (DictionaryItem di in sortedDict) { XmlElement lngElement = doc.CreateElement("string"); lngElement.SetAttribute("name", di.Key); lngElement.SetAttribute("value", GetTranslation(di.Key) ?? ""); root.AppendChild(lngElement); } doc.AppendChild(root); using (TextWriter sw = new StreamWriter(System.IO.Path.Combine(Core.PluginDataPath, "LanguageEng.xml" ), false, Encoding.UTF8)) //Set encoding { doc.Save(sw); } } } catch { } } } return base.ApplySettings(configPanels); }
protected override void ExportMethod() { int max = _gcList.Count * 3; //caches, waypoints, logs int index = 0; using (Utils.ProgressBlock progress = new Utils.ProgressBlock(this, STR_EXPORTINGCB, STR_CREATINGFILE, max, 0)) { string cbFile = System.IO.Path.Combine(_folder, "cachebox.db3"); if (System.IO.File.Exists(cbFile)) { System.IO.File.Delete(cbFile); } CreateDatabase(cbFile); if (_dbcon != null) { int fixedCatId = 1; string fixedGpxFilename = "12345678.gpx"; _dbcon.ExecuteNonQuery("PRAGMA user_version = 1022"); _dbcon.ExecuteNonQuery(string.Format("insert into Config (Key, Value) values ('{0}', '{1}')", "DatabaseSchemeVersion", "1022")); _dbcon.ExecuteNonQuery(string.Format("insert into Config (Key, Value) values ('{0}', '{1}')", "DatabaseSchemeVersionWin", "1022")); _dbcon.ExecuteNonQuery(string.Format("insert into Config (Key, Value) values ('{0}', '{1}')", "DatabaseId", DateTime.Now.ToFileTime())); _dbcon.ExecuteNonQuery(string.Format("insert into Config (Key, Value) values ('{0}', '{1}')", "MasterDatabaseId", DateTime.Now.ToFileTime() + 1)); _dbcon.ExecuteNonQuery(string.Format("insert into Category (Id, GpxFilename, Pinned) values ({0}, '{1}', {2})", fixedCatId, fixedGpxFilename, 0)); _dbcon.ExecuteNonQuery(string.Format("insert into GPXFilenames (Id, GpxFilename, Imported, CategoryId) values ({0}, '{1}', '{2}', {3})", 1, fixedGpxFilename, DateTime.Now.ToString("s"), fixedCatId)); //---------------------------- // CACHES //---------------------------- DbCommand cmd = _dbcon.Command; cmd.CommandText = "insert into Caches (Id, GcCode, GcId, Latitude, Longitude, Name, Size, Difficulty, Terrain, Archived, Available, Found, Type, PlacedBy, Owner, DateHidden, Hint, Description, Url, NumTravelbugs, Rating, Vote, VotePending, Notes, Solver, Favorit, AttributesPositive, AttributesNegative, TourName, GPXFilename_Id, HasUserData, ListingChanged, ImagesUpdated, DescriptionImagesUpdated, CorrectedCoordinates, AttributesPositiveHigh, AttributesNegativeHigh, State, Country) values (@Id, @GcCode, @GcId, @Latitude, @Longitude, @Name, @Size, @Difficulty, @Terrain, @Archived, @Available, @Found, @Type, @PlacedBy, @Owner, @DateHidden, @Hint, @Description, @Url, @NumTravelbugs, @Rating, @Vote, @VotePending, @Notes, @Solver, @Favorit, @AttributesPositive, @AttributesNegative, @TourName, @GPXFilename_Id, @HasUserData, @ListingChanged, @ImagesUpdated, @DescriptionImagesUpdated, @CorrectedCoordinates, @AttributesPositiveHigh, @AttributesNegativeHigh, @State, @Country)"; DbParameter par; par = cmd.CreateParameter(); par.ParameterName = "@Id"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@GcCode"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@GcId"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Latitude"; par.DbType = DbType.Single; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Longitude"; par.DbType = DbType.Single; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Name"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Size"; par.DbType = DbType.Int16; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Difficulty"; par.DbType = DbType.Int16; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Terrain"; par.DbType = DbType.Int16; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Archived"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Available"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Found"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Type"; par.DbType = DbType.Int16; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@PlacedBy"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Owner"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@DateHidden"; par.DbType = DbType.DateTime; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Hint"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Description"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Url"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@NumTravelbugs"; par.DbType = DbType.Int16; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Rating"; par.DbType = DbType.Int16; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Vote"; par.DbType = DbType.Int16; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@VotePending"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Notes"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Solver"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Favorit"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@AttributesPositive"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@AttributesNegative"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@TourName"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@GPXFilename_Id"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@HasUserData"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@ListingChanged"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@ImagesUpdated"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@DescriptionImagesUpdated"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@CorrectedCoordinates"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@AttributesPositiveHigh"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@AttributesNegativeHigh"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@State"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Country"; par.DbType = DbType.String; cmd.Parameters.Add(par); long startCacheId = DateTime.Now.ToFileTime() + 2; long cacheId = startCacheId; foreach (Framework.Data.Geocache gc in _gcList) { cmd.Parameters["@Id"].Value = cacheId; cmd.Parameters["@GcCode"].Value = gc.Code; cmd.Parameters["@GcId"].Value = gc.ID; if (gc.ContainsCustomLatLon) { cmd.Parameters["@Latitude"].Value = (float)gc.CustomLat; cmd.Parameters["@Longitude"].Value = (float)gc.CustomLon; } else { cmd.Parameters["@Latitude"].Value = (float)gc.Lat; cmd.Parameters["@Longitude"].Value = (float)gc.Lon; } cmd.Parameters["@Name"].Value = gc.Name ?? ""; switch (gc.Container.ID) { case 2: cmd.Parameters["@Size"].Value = 1; break; case 8: cmd.Parameters["@Size"].Value = 2; break; case 4: cmd.Parameters["@Size"].Value = 3; break; case 5: cmd.Parameters["@Size"].Value = 4; break; default: cmd.Parameters["@Size"].Value = 0; break; } cmd.Parameters["@Difficulty"].Value = (Int16)(gc.Difficulty * 2.0); cmd.Parameters["@Terrain"].Value = (Int16)(gc.Terrain * 2.0); cmd.Parameters["@Archived"].Value = gc.Archived; cmd.Parameters["@Available"].Value = gc.Available; cmd.Parameters["@Found"].Value = gc.Found; switch (gc.GeocacheType.ID) { case 2: cmd.Parameters["@Type"].Value = 0; break; case 3: cmd.Parameters["@Type"].Value = 1; break; case 4: cmd.Parameters["@Type"].Value = 8; break; case 5: cmd.Parameters["@Type"].Value = 9; break; case 6: cmd.Parameters["@Type"].Value = 5; break; case 8: cmd.Parameters["@Type"].Value = 2; break; case 11: cmd.Parameters["@Type"].Value = 3; break; case 13: cmd.Parameters["@Type"].Value = 7; break; case 137: cmd.Parameters["@Type"].Value = 4; break; case 453: cmd.Parameters["@Type"].Value = 6; break; case 1858: cmd.Parameters["@Type"].Value = 10; break; default: cmd.Parameters["@Type"].Value = 13; break; } cmd.Parameters["@PlacedBy"].Value = gc.PlacedBy ?? ""; cmd.Parameters["@Owner"].Value = gc.Owner ?? ""; cmd.Parameters["@DateHidden"].Value = gc.PublishedTime; cmd.Parameters["@Hint"].Value = gc.EncodedHints ?? ""; StringBuilder sb = new StringBuilder(); if (!string.IsNullOrEmpty(gc.ShortDescription)) { if (gc.ShortDescriptionInHtml) { sb.Append(gc.ShortDescription); } else { sb.Append(HttpUtility.HtmlEncode(gc.ShortDescription).Replace("\r", "").Replace("\n", "<br />")); } sb.Append("<br />"); } if (!string.IsNullOrEmpty(gc.LongDescription)) { if (gc.LongDescriptionInHtml) { sb.Append(gc.LongDescription); } else { sb.Append(HttpUtility.HtmlEncode(gc.LongDescription).Replace("\r", "").Replace("\n", "<br />")); } } cmd.Parameters["@Description"].Value = sb.ToString(); cmd.Parameters["@Url"].Value = gc.Url ?? ""; cmd.Parameters["@NumTravelbugs"].Value = 0; cmd.Parameters["@Rating"].Value = 0; cmd.Parameters["@Vote"].Value = 0; cmd.Parameters["@VotePending"].Value = false; sb.Length = 0; if (gc.ContainsNote) { if (!string.IsNullOrEmpty(gc.PersonaleNote)) { sb.Append(gc.PersonaleNote); sb.Append(" - "); } if (!string.IsNullOrEmpty(gc.Notes)) { sb.Append(Utils.Conversion.StripHtmlTags(gc.Notes)); } } cmd.Parameters["@Notes"].Value = sb.Length; cmd.Parameters["@Solver"].Value = ""; cmd.Parameters["@Favorit"].Value = false; DLong tmpAttributesNegative = new DLong(0, 0); DLong tmpAttributesPositive = new DLong(0, 0); List <int> attrs = gc.AttributeIds; foreach (int ix in attrs) { if (ix > 0) { tmpAttributesPositive.BitOr(Attributes.GetAttributeDlong(Attributes.getAttributeEnumByGcComId(ix).Attribute)); } else { tmpAttributesNegative.BitOr(Attributes.GetAttributeDlong(Attributes.getAttributeEnumByGcComId(-ix).Attribute)); } } long AttributePositiveLow = (long)tmpAttributesPositive.getLow(); long AttributePositiveHigh = (long)tmpAttributesPositive.getHigh(); long AttributesNegativeLow = (long)tmpAttributesNegative.getLow(); long AttributesNegativeHigh = (long)tmpAttributesNegative.getHigh(); cmd.Parameters["@AttributesPositive"].Value = AttributePositiveLow; cmd.Parameters["@AttributesNegative"].Value = AttributesNegativeLow; cmd.Parameters["@AttributesPositiveHigh"].Value = AttributePositiveHigh; cmd.Parameters["@AttributesNegativeHigh"].Value = AttributesNegativeHigh; cmd.Parameters["@TourName"].Value = ""; cmd.Parameters["@AttributesNegative"].Value = 1; cmd.Parameters["@HasUserData"].Value = false; cmd.Parameters["@ListingChanged"].Value = false; cmd.Parameters["@ImagesUpdated"].Value = false; cmd.Parameters["@DescriptionImagesUpdated"].Value = false; cmd.Parameters["@CorrectedCoordinates"].Value = false; cmd.Parameters["@State"].Value = gc.State ?? ""; cmd.Parameters["@Country"].Value = gc.Country ?? ""; cmd.ExecuteNonQuery(); cacheId++; index++; if (index % 200 == 0) { progress.UpdateProgress(STR_EXPORTINGCB, STR_CREATINGFILE, max, index); } } //---------------------------- // WAYPOINTS //---------------------------- cmd.Parameters.Clear(); cmd.CommandText = "insert into Waypoint (GcCode, CacheId, Latitude, Longitude, Description, Clue, Type, SyncExclude, UserWaypoint, Title) values (@GcCode, @CacheId, @Latitude, @Longitude, @Description, @Clue, @Type, @SyncExclude, @UserWaypoint, @Title)"; par = cmd.CreateParameter(); par.ParameterName = "@GcCode"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@CacheId"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Latitude"; par.DbType = DbType.Single; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Longitude"; par.DbType = DbType.Single; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Description"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Clue"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Type"; par.DbType = DbType.Int16; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@SyncExclude"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@UserWaypoint"; par.DbType = DbType.Boolean; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Title"; par.DbType = DbType.String; cmd.Parameters.Add(par); cacheId = startCacheId; foreach (Framework.Data.Geocache gc in _gcList) { List <Framework.Data.Waypoint> wps = Utils.DataAccess.GetWaypointsFromGeocache(Core.Waypoints, gc.Code); if (wps != null && wps.Count > 0) { foreach (Framework.Data.Waypoint wp in wps) { if (wp.Lat != null && wp.Lon != null) { cmd.Parameters["@GcCode"].Value = wp.Code; cmd.Parameters["@CacheId"].Value = cacheId; cmd.Parameters["@Latitude"].Value = (float)(double)wp.Lat; cmd.Parameters["@Longitude"].Value = (float)(double)wp.Lon; cmd.Parameters["@Description"].Value = wp.Comment ?? ""; cmd.Parameters["@Clue"].Value = ""; switch (wp.WPType.ID) { case 217: cmd.Parameters["@Type"].Value = 17; break; case 220: cmd.Parameters["@Type"].Value = 18; break; case 218: cmd.Parameters["@Type"].Value = 15; break; case 452: cmd.Parameters["@Type"].Value = 11; break; case 219: cmd.Parameters["@Type"].Value = 14; break; case 221: cmd.Parameters["@Type"].Value = 16; break; default: cmd.Parameters["@Type"].Value = 13; break; } cmd.Parameters["@SyncExclude"].Value = false; cmd.Parameters["@UserWaypoint"].Value = string.IsNullOrEmpty(wp.Url) || !wp.Url.ToLower().StartsWith("http:"); cmd.Parameters["@Title"].Value = wp.Description ?? ""; cmd.ExecuteNonQuery(); } } } cacheId++; index++; if (index % 200 == 0) { progress.UpdateProgress(STR_EXPORTINGCB, STR_CREATINGFILE, max, index); } } //---------------------------- // LOGS //---------------------------- if (PluginSettings.Instance.MaxLogs > 0) { cmd.Parameters.Clear(); cmd.CommandText = "insert into Logs (Id, CacheId, Timestamp, Finder, Type, Comment) values (@Id, @CacheId, @Timestamp, @Finder, @Type, @Comment)"; par = cmd.CreateParameter(); par.ParameterName = "@Id"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@CacheId"; par.DbType = DbType.Int64; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Timestamp"; par.DbType = DbType.DateTime; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Finder"; par.DbType = DbType.String; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Type"; par.DbType = DbType.Int16; cmd.Parameters.Add(par); par = cmd.CreateParameter(); par.ParameterName = "@Comment"; par.DbType = DbType.String; cmd.Parameters.Add(par); long logId = 1; cacheId = startCacheId; foreach (Framework.Data.Geocache gc in _gcList) { List <Framework.Data.Log> logs = Utils.DataAccess.GetLogs(Core.Logs, gc.Code).Take(PluginSettings.Instance.MaxLogs).ToList(); if (logs != null && logs.Count > 0) { logs = logs.Take(PluginSettings.Instance.MaxLogs).ToList(); foreach (Framework.Data.Log lg in logs) { long id = logId; if (lg.ID.StartsWith("GL")) { id = Utils.Conversion.GetCacheIDFromCacheCode(lg.ID); } else { long.TryParse(lg.ID, out id); } cmd.Parameters["@Id"].Value = id; cmd.Parameters["@CacheId"].Value = cacheId; cmd.Parameters["@Timestamp"].Value = lg.Date; cmd.Parameters["@Finder"].Value = lg.Finder ?? ""; switch (lg.LogType.ID) { case 2: cmd.Parameters["@Type"].Value = 0; break; case 3: cmd.Parameters["@Type"].Value = 1; break; case 4: cmd.Parameters["@Type"].Value = 2; break; case 24: cmd.Parameters["@Type"].Value = 3; break; case 23: cmd.Parameters["@Type"].Value = 4; break; case 45: cmd.Parameters["@Type"].Value = 5; break; case 22: cmd.Parameters["@Type"].Value = 6; break; case 46: case 47: cmd.Parameters["@Type"].Value = 7; break; case 9: cmd.Parameters["@Type"].Value = 8; break; case 10: cmd.Parameters["@Type"].Value = 9; break; case 11: cmd.Parameters["@Type"].Value = 10; break; case 5: case 6: case 12: cmd.Parameters["@Type"].Value = 11; break; case 18: cmd.Parameters["@Type"].Value = 12; break; case 7: cmd.Parameters["@Type"].Value = 13; break; default: cmd.Parameters["@Type"].Value = 2; break; } cmd.Parameters["@Comment"].Value = lg.Text ?? ""; cmd.ExecuteNonQuery(); } } cacheId++; index++; if (index % 200 == 0) { progress.UpdateProgress(STR_EXPORTINGCB, STR_CREATINGFILE, max, index); } } } _dbcon.Dispose(); } } }
private Utils.DBCon initDatabase() { Utils.DBCon result = null; try { string fn = System.IO.Path.Combine(_core.PluginDataPath, "coordsav.db3" ); if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(fn))) { System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(fn)); } result = new Utils.DBConComSqlite(fn); object o = result.ExecuteScalar("SELECT name FROM sqlite_master WHERE type='table' AND name='coord'"); if (o == null || o.GetType() == typeof(DBNull)) { result.ExecuteNonQuery("create table 'coord' (code text, lat real, lon real)"); result.ExecuteNonQuery("create unique index idx_coord on coord (code)"); } } catch { } return result; }
internal bool processTextFile(Framework.Data.AreaType level, string f, Framework.Data.AreaInfo parent) { PreLoadAreaInfo(); bool result = false; try { //filename = AreaName string areaName = System.IO.Path.GetFileNameWithoutExtension(f); char[] num = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; int pos = 0; while (pos < areaName.Length && !num.Contains(areaName[pos])) { pos++; } areaName = areaName.Substring(0, pos); string[] lines = System.IO.File.ReadAllLines(f); pos = 0; if (lines[0].StartsWith("# GsakName=")) { areaName = lines[0].Substring(lines[0].IndexOf('=') + 1).Trim(); pos++; } string slat = ""; string slon = ""; double lat; double lon; bool newPoly; Framework.Data.AreaInfo ai; List <Framework.Data.AreaInfo> ailist = GetAreasByName(areaName, level); bool firstPoint = true; if (ailist.Count > 0) { ai = ailist[0]; firstPoint = false; newPoly = false; } else { newPoly = true; ai = new Framework.Data.AreaInfo(); ai.ID = _maxAreaInfoId + 1; _maxAreaInfoId++; ai.Name = areaName; ai.Level = level; ai.Polygons = new List <Framework.Data.Polygon>(); } Framework.Data.Polygon poly = new Framework.Data.Polygon(); _maxPolyId++; using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFilename)) { dbcon.BeginTran(); while (pos < lines.Length) { string s = lines[pos].Trim(); if (!s.StartsWith("#")) { string[] parts = s.Split(new char[] { ' ', ',', '\t' }, StringSplitOptions.RemoveEmptyEntries); if (parts.Length == 2) { lat = Utils.Conversion.StringToDouble(parts[0]); lon = Utils.Conversion.StringToDouble(parts[1]); if (firstPoint) { ai.MinLat = lat; ai.MaxLat = lat; ai.MinLon = lon; ai.MaxLon = lon; firstPoint = false; } else { if (lat < ai.MinLat) { ai.MinLat = lat; } if (lat > ai.MaxLat) { ai.MaxLat = lat; } if (lon < ai.MinLon) { ai.MinLon = lon; } if (lon > ai.MaxLon) { ai.MaxLon = lon; } } poly.AddLocation(new Framework.Data.Location(lat, lon)); dbcon.ExecuteNonQuery(string.Format("insert into poly (id, areainfoid, position, lat, lon) values ({0}, {1}, {2}, {3}, {4})", _maxPolyId, ai.ID, poly.Count, lat.ToString().Replace(',', '.'), lon.ToString().Replace(',', '.'))); if (poly.Count == 1) { slat = parts[0]; slon = parts[1]; ai.Polygons.Add(poly); } else if (slat == parts[0] && slon == parts[1]) { poly = new Framework.Data.Polygon(); _maxPolyId++; } } } pos++; } if (newPoly) { _cachedAreaInfo.Add(ai); dbcon.ExecuteNonQuery(string.Format("insert into areainfo (id, parentid, level, name, minlat, minlon, maxlat, maxlon) values ({0}, {1}, {2}, '{3}', {4}, {5}, {6}, {7})", ai.ID, parent == null ? "NULL" : parent.ID, (short)ai.Level, ai.Name.Replace("'", "''"), ai.MinLat.ToString().Replace(',', '.'), ai.MinLon.ToString().Replace(',', '.'), ai.MaxLat.ToString().Replace(',', '.'), ai.MaxLon.ToString().Replace(',', '.'))); } else { dbcon.ExecuteNonQuery(string.Format("update areainfo set parentid={0}, minlat={1}, minlon={2}, maxlat={3}, maxlon={4} where id={5}", parent == null ? "NULL" : parent.ID, ai.MinLat.ToString().Replace(',', '.'), ai.MinLon.ToString().Replace(',', '.'), ai.MaxLat.ToString().Replace(',', '.'), ai.MaxLon.ToString().Replace(',', '.'), ai.ID)); } dbcon.CommitTran(); result = true; } } catch { } return(result); }
public override bool ApplySettings(List<System.Windows.Forms.UserControl> configPanels) { try { SettingsPanel panel = (from p in configPanels where p.GetType() == typeof(SettingsPanel) select p).FirstOrDefault() as SettingsPanel; List<string> presets = panel.PresetNames; if (presets.Count != _presets.Count) { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_presetDatabaseFile)) { initDatabase(dbcon); List<string> tobeRemoved = new List<string>(); foreach (string p in _presets) { if (!presets.Contains(p)) { dbcon.ExecuteNonQuery(string.Format("delete from forms where preset='{0}'", p.Replace("'","''"))); dbcon.ExecuteNonQuery(string.Format("delete from preset where name='{0}'", p.Replace("'", "''"))); RemoveAction(string.Concat("Presets|", p)); tobeRemoved.Add(p); } } foreach (string p in tobeRemoved) { _presets.Remove(p); } } } } catch { } return true; }
private void updateProcessedPq(string pqName) { if (_databaseFile != null) { try { using (Utils.DBCon dbcon = new Utils.DBConComSqlite(_databaseFile)) { initDatabase(dbcon); //delete older than 8 days DateTime weekAgo = DateTime.Now.AddDays(-8); dbcon.ExecuteNonQuery(string.Format("delete from processedpq where processdate<'{0}'", weekAgo.ToString("s"))); if (dbcon.ExecuteNonQuery(string.Format("update processedpq set processdate='{0}' where pqname='{1}'", DateTime.Now.ToString("s"), pqName.Replace("'","''")))==0) { dbcon.ExecuteNonQuery(string.Format("insert into processedpq (pqname, processdate) values ('{1}', '{0}')", DateTime.Now.ToString("s"), pqName.Replace("'", "''"))); } } } catch { } } }