Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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");
        }