/// <summary> /// Returns the way for the given id. /// </summary> /// <param name="id"></param> /// <returns></returns> public override Way GetWay(long id) { string wayKey = PrimitiveExtensions.BuildWayRedisKey(id); RedisWay redisWay = _clientWay.GetValue(wayKey); Way way = null; if (redisWay != null) { way = PrimitiveExtensions.ConvertFrom(redisWay); } return(way); }
/// <summary> /// Converts the given way to a redis way. /// </summary> /// <param name="way"></param> /// <returns></returns> public static RedisWay ConvertTo(Way way) { RedisWay redisWay = new RedisWay(); redisWay.Id = way.Id.Value; redisWay.ChangeSetId = way.ChangeSetId; redisWay.TimeStamp = way.TimeStamp; redisWay.UserId = way.UserId; redisWay.UserName = way.UserName; redisWay.Version = way.Version; redisWay.Visible = way.Visible; redisWay.Tags = PrimitiveExtensions.ConvertTo(way.Tags); if (way.Nodes != null) { redisWay.Nodes = new List <long>(way.Nodes); } return(redisWay); }
/// <summary> /// Converts the given way from a redis way. /// </summary> /// <param name="redisWay"></param> /// <returns></returns> public static Way ConvertFrom(RedisWay redisWay) { Way way = new Way(); way.Id = redisWay.Id.Value; way.ChangeSetId = redisWay.ChangeSetId; way.TimeStamp = redisWay.TimeStamp; way.UserId = redisWay.UserId; way.UserName = redisWay.UserName; way.Version = redisWay.Version; way.Visible = redisWay.Visible; way.Tags = PrimitiveExtensions.ConvertFrom(redisWay.Tags); if (redisWay.Nodes != null) { way.Nodes = new List <long>(redisWay.Nodes); } return(way); }
/// <summary> /// Reads an osmGeo object from disk. /// </summary> /// <param name="id"></param> /// <param name="type"></param> private OsmGeo Read(long id, OsmGeoType type) { switch (type) { case OsmGeoType.Node: string nodeKey = PrimitiveExtensions.BuildNodeRedisKey(id); RedisNode redisNode = _clientNode.GetValue(nodeKey); Node node = null; if (redisNode != null) { node = PrimitiveExtensions.ConvertFrom(redisNode); } return(node); case OsmGeoType.Way: string wayKey = PrimitiveExtensions.BuildWayRedisKey(id); RedisWay redisWay = _clientWay.GetValue(wayKey); Way way = null; if (redisWay != null) { way = PrimitiveExtensions.ConvertFrom(redisWay); } return(way); case OsmGeoType.Relation: string relationKey = PrimitiveExtensions.BuildRelationRedisKey(id); RedisRelation redisRelation = _clientRelation.GetValue(relationKey); Relation relation = null; if (redisRelation != null) { relation = PrimitiveExtensions.ConvertFrom(redisRelation); } return(relation); } throw new ArgumentOutOfRangeException("type"); }