public override List <MaptileInfo> GetUpdateTimes(GridVector minloc, GridVector maxloc, int zoomlevel) { var infos = new List <MaptileInfo>(); using (var connection = new NpgsqlConnection(m_ConnectionString)) { connection.Open(); using (var cmd = new NpgsqlCommand("SELECT \"LocX\", \"LocY\", \"LastUpdate\" FROM maptiles WHERE \"ZoomLevel\" = @zoomlevel AND \"LocX\" >= @locxlow AND \"LocY\" >= @locylow AND \"LocX\" <= @locxhigh AND \"LocY\" <= @locyhigh", connection)) { cmd.Parameters.AddParameter("@zoomlevel", zoomlevel); cmd.Parameters.AddParameter("@locxlow", minloc.X); cmd.Parameters.AddParameter("@locylow", minloc.Y); cmd.Parameters.AddParameter("@locxhigh", maxloc.X); cmd.Parameters.AddParameter("@locyhigh", maxloc.Y); using (NpgsqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { var info = new MaptileInfo { Location = new GridVector { X = (uint)(int)reader["LocX"], Y = (uint)(int)reader["LocY"] }, LastUpdate = reader.GetDate("LastUpdate"), ZoomLevel = zoomlevel }; infos.Add(info); } } } } return(infos); }
private bool IsEqual(MaptileInfo a, MaptileInfo b) { var mismatches = new List <string>(); if (a.Location != b.Location) { mismatches.Add("Location"); } if (Math.Abs((long)a.LastUpdate.AsULong - (long)b.LastUpdate.AsULong) > 1) { m_Log.InfoFormat("LastUpdate mismatch {0} != {1}", a.LastUpdate.AsULong, b.LastUpdate.AsULong); mismatches.Add("LastUpdate"); } if (a.ZoomLevel != b.ZoomLevel) { mismatches.Add("ZoomLevel"); } if (mismatches.Count != 0) { m_Log.InfoFormat("Mismatches: {0}", string.Join(" ", mismatches)); } return(mismatches.Count == 0); }
public override List <MaptileInfo> GetUpdateTimes(UUID scopeid, GridVector minloc, GridVector maxloc, int zoomlevel) { var infos = new List <MaptileInfo>(); using (var connection = new MySqlConnection(m_ConnectionString)) { connection.Open(); using (var cmd = new MySqlCommand("SELECT LocX, LocY, LastUpdate FROM maptiles WHERE ScopeID = @scopeid AND ZoomLevel = @zoomlevel AND locX >= @locxlow AND locY >= @locylow AND locX <= @locxhigh AND locY <= @locyhigh", connection)) { cmd.Parameters.AddParameter("@scopeid", scopeid); cmd.Parameters.AddParameter("@zoomlevel", zoomlevel); cmd.Parameters.AddParameter("@locxlow", minloc.X); cmd.Parameters.AddParameter("@locylow", minloc.Y); cmd.Parameters.AddParameter("@locxhigh", maxloc.X); cmd.Parameters.AddParameter("@locyhigh", maxloc.Y); using (MySqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { var info = new MaptileInfo() { Location = new GridVector { X = reader.GetUInt32("LocX"), Y = reader.GetUInt32("LocY") }, LastUpdate = reader.GetDate("LastUpdate"), ScopeID = scopeid, ZoomLevel = zoomlevel }; infos.Add(info); } } } } return(infos); }
public MaptileInfo(MaptileInfo info) { Location = info.Location; LastUpdate = new Date(info.LastUpdate); ZoomLevel = info.ZoomLevel; }