예제 #1
0
        public List <ParsedId> GetPreviousObjects(string id, IdType type)
        {
            var res = new List <ParsedId>();

            ParsedId lastParsed = GetInfo(id, type);

            res.Add(lastParsed);

            int countIterations = 0;

            while (!string.IsNullOrEmpty(lastParsed.prevId) && countIterations < 10)
            {
                IdType searchType = IdType.Object;

                if (lastParsed.type == IdType.Room)
                {
                    searchType = IdType.House;
                }
                else if (lastParsed.type == IdType.House)
                {
                    searchType = IdType.Object;
                }

                lastParsed = GetInfo(lastParsed.prevId, searchType);
                res.Add(lastParsed);
                countIterations++;
            }

            return(res);
        }
예제 #2
0
        public ParsedId GetInfo(string guId, IdType type)
        {
            ParsedId res = null;

            switch (type)
            {
            case (IdType.Room):
                //ищем комнату
                res = (from h in context.Room
                       where h.ROOMGUID == guId
                       select new ParsedId()
                {
                    id = h.ROOMGUID,
                    level = -1,
                    name = h.ROOMNUMBER,
                    prevId = h.HOUSEGUID,
                    type = IdType.Room
                }).ToList().First();
                break;

            case (IdType.House):
                //ищем дом
                res = (from h in context.House
                       where h.HOUSEGUID == guId
                       select new ParsedId()
                {
                    id = guId,
                    level = -1,
                    name = h.HOUSENUM,
                    prevId = h.AOGUID,
                    type = IdType.House
                }
                       ).ToList().First();
                break;

            case (IdType.Object):
                res = (from o in context.Object
                       where o.AOGUID == guId && o.ACTSTATUS == 1
                       select new ParsedId()
                {
                    id = guId,
                    level = o.AOLEVEL,
                    name = o.FORMALNAME,
                    shortName = o.SHORTNAME,
                    prevId = o.PARENTGUID,
                    type = IdType.Object
                }).ToList().First();
                break;
            }
            return(res);
        }