Example #1
0
 private Expense BuildStructure(SQLiteDataReader reader)
 {
     long expenseId = reader.GetInt64(0);
     long accountId = reader.GetInt64(1);
     long amount = reader.GetInt64(2);
     long categoryId = reader.GetInt64(3);
     DateTime date = DateTime.Parse(reader.GetString(4));
     string description = reader.GetString(5);
     return new Expense(expenseId, accountId, amount, categoryId, date, description);
 }
Example #2
0
        internal static void MapDataReaderToContentDto(SQLiteDataReader dataReader, out ContentDto contentDto)
        {
            contentDto = new ContentDto();

            contentDto.ContentId = dataReader.GetInt64((int) ContentDao.ContentsField.ContentId);
            contentDto.UrlId = dataReader.GetInt64((int) ContentDao.ContentsField.UrlId);
            contentDto.ContentType = (ContentTypesEnum) dataReader.GetInt64((int) ContentDao.ContentsField.ContentType);
            contentDto.Element = dataReader.GetString((int) ContentDao.ContentsField.Element);
            contentDto.Element = HttpUtility.UrlDecode(contentDto.Element);
            contentDto.Line = dataReader.GetInt64((int) ContentDao.ContentsField.Line);
            contentDto.LinePosition = dataReader.GetInt64((int) ContentDao.ContentsField.LinePosition);
        }
Example #3
0
 private Person BuildUserStructure(SQLiteDataReader reader)
 {
     string name = reader.GetString(0);
     string fullName = reader.GetString(1);
     long personId = reader.GetInt64(2);
     return new Person(name, fullName, personId);
 }
        public ResourceRecord(SQLiteDataReader rpReader)
        {
            ID = rpReader.GetInt64("time");

            Fuel = rpReader.GetInt32("fuel");
            Bullet = rpReader.GetInt32("bullet");
            Steel = rpReader.GetInt32("steel");
            Bauxite = rpReader.GetInt32("bauxite");
            InstantConstruction = rpReader.GetInt32("instant_construction");
            Bucket = rpReader.GetInt32("bucket");
            DevelopmentMaterial = rpReader.GetInt32("development_material");
            ImprovementMaterial = rpReader.GetInt32("improvement_material");
        }
Example #5
0
 protected void ReadDvbData(SQLiteDataReader r, IDictionary<string, int> field, DataRoot dataRoot, Dictionary<long, string> providers)
 {
     this.ShortName = DbSerializer.ReadUtf16(r, 16);
       this.RecordOrder = r.GetInt32(field["major"]);
       int serviceType = r.GetInt32(field["srvType"]);
       this.ServiceType = serviceType;
       this.SignalSource |= LookupData.Instance.IsRadioOrTv(serviceType);
       this.OriginalNetworkId = r.GetInt32(field["onid"]);
       this.TransportStreamId = r.GetInt32(field["tsid"]);
       this.ServiceId = r.GetInt32(field["progNum"]);
       this.VideoPid = r.GetInt32(field["vidPid"]);
       if (!r.IsDBNull(field["provId"]))
     this.Provider = providers.TryGet(r.GetInt64(field["provId"]));
 }
        internal DevelopmentRecord(SQLiteDataReader rpReader)
        {
            ID = rpReader.GetInt64("time");

            var rEquipmentID = rpReader.GetInt32Optional("equipment");
            if (rEquipmentID.HasValue)
                Equipment = KanColleGame.Current.MasterInfo.Equipment[rEquipmentID.Value];

            FuelConsumption = rpReader.GetInt32("fuel");
            BulletConsumption = rpReader.GetInt32("bullet");
            SteelConsumption = rpReader.GetInt32("steel");
            BauxiteConsumption = rpReader.GetInt32("bauxite");

            SecretaryShip = KanColleGame.Current.MasterInfo.Ships[rpReader.GetInt32("flagship")];
            HeadquarterLevel = rpReader.GetInt32("hq_level");
        }
        internal FateRecord(SQLiteDataReader rpReader)
        {
            ID = rpReader.GetInt64("time");

            var rMasterInfo = KanColleGame.Current.MasterInfo;
            var rMasterID = rpReader.GetInt32("master_id");
            IsEquipment = rpReader.GetBoolean("is_equipment");
            if (!IsEquipment)
                Ship = rMasterInfo.Ships[rMasterID];
            else
                Equipment = rMasterInfo.Equipment[rMasterID];

            Level = rpReader.GetInt32("level");
            Proficiency = rpReader.GetInt32("proficiency");

            Fate = (Fate)rpReader.GetInt32("fate");
        }
        internal ConstructionRecord(SQLiteDataReader rpReader)
        {
            ID = rpReader.GetInt64("time");

            Ship = KanColleGame.Current.MasterInfo.Ships[rpReader.GetInt32("ship")];

            FuelConsumption = rpReader.GetInt32("fuel");
            BulletConsumption = rpReader.GetInt32("bullet");
            SteelConsumption = rpReader.GetInt32("steel");
            BauxiteConsumption = rpReader.GetInt32("bauxite");
            DevelopmentMaterialConsumption = rpReader.GetInt32("dev_material");

            SecretaryShip = KanColleGame.Current.MasterInfo.Ships[rpReader.GetInt32("flagship")];
            HeadquarterLevel = rpReader.GetInt32("hq_level");

            EmptyDockCount = rpReader.GetInt32Optional("empty_dock");
        }
        internal SortieConsumptionRecord(SQLiteDataReader rpReader) : base(rpReader)
        {
            ID = rpReader.GetInt64("id");

            var rMapMaxHP = rpReader.GetInt32Optional("map_max_hp");
            if (rMapMaxHP.HasValue)
            {
                var rMapHP = rpReader.GetInt32Optional("map_hp");
                if (rMapHP.HasValue)
                    MapHP = new ClampedValue(rMapMaxHP.Value, rMapHP.Value);
            }

            Fuel = rpReader.GetInt32("fuel");
            Bullet = rpReader.GetInt32("bullet");
            Steel = rpReader.GetInt32("steel");
            Bauxite = rpReader.GetInt32("bauxite");
            Bucket = rpReader.GetInt32("bucket");

            RankingPoint = rpReader.GetDoubleOptional("ranking_point");
        }
Example #10
0
    internal DbChannel(SQLiteDataReader r, IDictionary<string, int> field, DataRoot dataRoot, Dictionary<long, string> providers, Satellite sat, Transponder tp)
    {
      var chType = r.GetInt32(field["chType"]);
      this.SignalSource = DbSerializer.ChTypeToSignalSource(chType);

      this.RecordIndex = r.GetInt64(field["SRV.srvId"]);
      this.OldProgramNr = r.GetInt32(field["major"]);
      this.FreqInMhz = (decimal)r.GetInt32(field["freq"]) / 1000;
      this.ChannelOrTransponder = 
        (this.SignalSource & SignalSource.DvbT) == SignalSource.DvbT ? LookupData.Instance.GetDvbtTransponder(this.FreqInMhz).ToString() :
        (this.SignalSource & SignalSource.DvbC) == SignalSource.DvbC ? LookupData.Instance.GetDvbcTransponder(this.FreqInMhz).ToString() :
        (this.SignalSource & SignalSource.Sat) == SignalSource.DvbS ? LookupData.Instance.GetAstraTransponder((int)this.FreqInMhz).ToString() :
        "";
      this.Name = DbSerializer.ReadUtf16(r, 6);
      this.Hidden = r.GetBoolean(field["hidden"]);
      this.Encrypted = r.GetBoolean(field["scrambled"]);
      this.Lock = r.GetBoolean(field["lockMode"]);
      this.Skip = !r.GetBoolean(field["numSel"]);

      if (sat != null)
      {
        this.Satellite = sat.Name;
        this.SatPosition = sat.OrbitalPosition;
      }
      if (tp != null)
      {
        this.Transponder = tp;
        this.SymbolRate = tp.SymbolRate;
      }

      if ((this.SignalSource & SignalSource.Digital) != 0)
        this.ReadDvbData(r, field, dataRoot, providers);
      else
        this.ReadAnalogData(r, field);

      base.IsDeleted = this.OldProgramNr == -1;
    }
Example #11
0
 public static void ReadValue(SQLiteDataReader reader, int index, TypeStorage type, ICdlValueWriter writer)
 {
     switch (type)
     {
         case TypeStorage.Boolean:
             writer.SetBoolean(reader.GetInt32(index) != 0);
             break;
         case TypeStorage.Byte:
             writer.SetByte((byte) reader.GetInt32(index));
             break;
         case TypeStorage.Int16:
             writer.SetInt16((short) reader.GetInt32(index));
             break;
         case TypeStorage.Int32:
             writer.SetInt32((int) reader.GetInt32(index));
             break;
         case TypeStorage.Int64:
             writer.SetInt64((long) reader.GetInt64(index));
             break;
         case TypeStorage.SByte:
             writer.SetSByte((sbyte) reader.GetInt32(index));
             break;
         case TypeStorage.UInt16:
             writer.SetUInt16((ushort) reader.GetInt32(index));
             break;
         case TypeStorage.UInt32:
             writer.SetUInt32((uint) reader.GetInt32(index));
             break;
         case TypeStorage.UInt64:
             writer.SetUInt64((ulong) reader.GetInt64(index));
             break;
         case TypeStorage.DateTime:
             writer.SetDateTime(DateTime.Parse(reader.GetString(index), CultureInfo.InvariantCulture));
             //writer.SetDateTime(DateTime.ParseExact(reader.GetString(index), "s", CultureInfo.InvariantCulture));
             break;
         case TypeStorage.DateTimeEx:
             writer.SetDateTimeEx(DateTimeEx.ParseNormalized(reader.GetString(index)));
             break;
         case TypeStorage.DateEx:
             writer.SetDateEx(DateEx.ParseNormalized(reader.GetString(index)));
             break;
         case TypeStorage.TimeEx:
             writer.SetTimeEx(TimeEx.ParseNormalized(reader.GetString(index)));
             break;
         case TypeStorage.Decimal:
             {
                 var dtype = reader.GetFieldType(index);
                 decimal value;
                 if (dtype == typeof (string))
                 {
                     value = Decimal.Parse(reader.GetString(index), CultureInfo.InvariantCulture);
                 }
                 else
                 {
                     value = (decimal) reader.GetDouble(index);
                 }
                 writer.SetDecimal(value);
             }
             break;
         case TypeStorage.Float:
             writer.SetFloat((float) reader.GetDouble(index));
             break;
         case TypeStorage.Double:
             writer.SetDouble((double) reader.GetDouble(index));
             break;
         case TypeStorage.String:
             writer.SetString(reader.GetString(index));
             break;
         case TypeStorage.Guid:
             writer.SetGuid(new Guid(reader.GetString(index)));
             break;
         case TypeStorage.ByteArray:
             writer.SetByteArray((byte[]) reader.GetValue(index));
             break;
         case TypeStorage.Null:
             writer.SetNull();
             break;
         default:
             throw new Exception("DBSH-00167 Unsupported field type:" + type.ToString());
     }
 }
Example #12
0
        static Card ReadCard(SQLiteDataReader reader,bool reNewLine)
        {
            Card c = new Card(0);
            c.id = reader.GetInt64(reader.GetOrdinal("id"));
            c.ot = reader.GetInt32(reader.GetOrdinal("ot"));
            c.alias = reader.GetInt64(reader.GetOrdinal("alias"));
            c.setcode = reader.GetInt64(reader.GetOrdinal("setcode"));
            c.type = reader.GetInt64(reader.GetOrdinal("type"));
            c.atk = reader.GetInt32(reader.GetOrdinal("atk"));
            c.def = reader.GetInt32(reader.GetOrdinal("def"));
            c.level = reader.GetInt64(reader.GetOrdinal("level"));
            c.race = reader.GetInt64(reader.GetOrdinal("race"));
            c.attribute = reader.GetInt32(reader.GetOrdinal("attribute"));
            c.category = reader.GetInt64(reader.GetOrdinal("category"));
            c.name = reader.GetString(reader.GetOrdinal("name"));

            c.desc = reader.GetString(reader.GetOrdinal("desc"));
            if(reNewLine)
                c.desc=Retext(c.desc);
            string temp = null;
            for ( int i = 0; i < 0x10; i++ )
            {
                temp = reader.GetString(reader.GetOrdinal("str"+(i+1).ToString()));
                c.Str[i]= ( temp == null ) ? "":temp;
            }
            return c;
        }
Example #13
0
 private static void MapDataReaderToUrlDto(SQLiteDataReader dataReader, out UrlDto urlDto)
 {
     urlDto = new UrlDto();
     urlDto.UrlId = dataReader.GetInt64((int)UrlsField.UrlId);
     urlDto.Url = dataReader.GetString((int)UrlsField.Url);
     urlDto.Url = HttpUtility.UrlDecode(urlDto.Url);
     urlDto.Status = (HttpStatusCode) dataReader.GetInt32((int)UrlsField.Status);
     urlDto.IsWebPage = dataReader.GetInt32((int)UrlsField.IsWebPage) > 0;
 }
 private long ReadOneInt64(SQLiteDataReader reader)
 {
     return reader.GetInt64(0);
 }
Example #15
0
		private CrashReport MakeCrashReport(SQLiteDataReader reader)
		{
			Guid g = reader.GetGuid(0); //Guid.Parse(reader.GetString(0)));
			long l = reader.GetInt64(1);
			string s1 = reader.GetString(2);
			string s2 = reader.GetString(3);
			string s3 = reader.GetString(4);
			string s4 = reader.GetString(5);
			Version v = Version.Parse(reader.GetString(6));
			string s6 = reader.GetValue(7) as string;         //Not GetString as GetString throws an invalidCast 
			string s7 = reader.GetValue(8) as string;         //(or another exception, cannot rmbr)
			string userstory = reader.GetValue(9) as string;  //If the value is null, and this and following fields 
			string trace = reader.GetValue(10) as string;     //can be null as they aren't set before zip is downloaded


			return new CrashReport(innerApi, g, l, s1, s2, s3, s4, v, s6, s7, trace, userstory);
		}
 private Tuple<long, Tag> ReadInt64AndTag(SQLiteDataReader reader)
 {
     return new Tuple<long, Tag>(reader.GetInt64(0), new Tag(reader.GetString(1), reader.GetString(2)));
 }
        private RelationMember ReadRelationMember(SQLiteDataReader reader)
        {
            var relation_member = new RelationMember();

            relation_member.MemberType = SchemaTools.ConvertMemberType(reader.GetInt16(0));
            relation_member.MemberId = reader.GetInt64(1);
            relation_member.MemberRole = reader.GetString(2);

            return relation_member;
        }
 private Tuple<long, long> ReadTwoInt64s(SQLiteDataReader reader)
 {
     return new Tuple<long, long>(reader.GetInt64(0), reader.GetInt64(1));
 }
        private Tuple<long, RelationMember> ReadRelationIdAndMember(SQLiteDataReader reader)
        {
            var relation_member = new RelationMember();

            relation_member.MemberType = SchemaTools.ConvertMemberType(reader.GetInt16(1));
            relation_member.MemberId = reader.GetInt64(2);
            relation_member.MemberRole = reader.GetString(3);

            return new Tuple<long, RelationMember>(reader.GetInt64(0), relation_member);
        }
        private Relation ReadRelation(SQLiteDataReader reader)
        {
            var relation = new Relation();

            relation.Id = reader.GetInt64(0);

            // evaluate name
            if (!reader.IsDBNull(1))
            {
                var name = reader.GetString(1);
                EvaluateName(name, relation);
            }

            return relation;
        }
 private Tuple<long, int> ReadOneInt64OneInt32(SQLiteDataReader reader)
 {
     return new Tuple<long, int>(reader.GetInt64(0), reader.GetInt32(1));
 }
Example #22
0
        private static Item createItem(SQLiteDataReader reader)
        {
            SQLiteCommand command;

            if (!reader.Read()) {
                return null;
            }

            Item item = new Item();
            item.permanent = true;
            item.id = reader.GetInt32(0);
            item.displayname = reader.GetString(1);
            item.actual_value = reader.IsDBNull(2) ? DATABASE_NULL : reader.GetInt64(2);
            item.vendor_value = reader.IsDBNull(3) ? DATABASE_NULL : reader.GetInt64(3);
            item.stackable = reader.GetBoolean(4);
            item.capacity = reader.IsDBNull(5) ? DATABASE_NULL : reader.GetFloat(5);
            item.category = reader.IsDBNull(6) ? "Unknown" : reader.GetString(6);
            item.discard = reader.GetBoolean(7);
            item.convert_to_gold = reader.GetBoolean(8);
            item.look_text = reader.IsDBNull(9) ? String.Format("You see a {0}.", item.displayname) : reader.GetString(9);
            item.title = reader.GetString(10);
            item.currency = reader.IsDBNull(11) ? DATABASE_NULL : reader.GetInt32(11);
            item.image = Image.FromStream(reader.GetStream(12));
            if (item.image.RawFormat.Guid == ImageFormat.Gif.Guid) {
                int frames = item.image.GetFrameCount(FrameDimension.Time);
                if (frames == 1) {
                    Bitmap new_bitmap = new Bitmap(item.image);
                    new_bitmap.MakeTransparent();
                    item.image.Dispose();
                    item.image = new_bitmap;
                }
            }

            command = new SQLiteCommand(String.Format("SELECT vendorid, value FROM SellItems WHERE itemid={0}", item.id), mainForm.conn);
            reader = command.ExecuteReader();
            while (reader.Read()) {
                ItemSold sellItem = new ItemSold();
                sellItem.itemid = item.id;
                sellItem.npcid = reader.GetInt32(0);
                sellItem.price = reader.GetInt32(1);
                item.sellItems.Add(sellItem);
            }
            command = new SQLiteCommand(String.Format("SELECT vendorid, value FROM BuyItems WHERE itemid={0}", item.id), mainForm.conn);
            reader = command.ExecuteReader();
            while (reader.Read()) {
                ItemSold buyItem = new ItemSold();
                buyItem.itemid = item.id;
                buyItem.npcid = reader.GetInt32(0);
                buyItem.price = reader.GetInt32(1);
                item.buyItems.Add(buyItem);
            }
            command = new SQLiteCommand(String.Format("SELECT creatureid, percentage, min, max FROM CreatureDrops WHERE itemid={0}", item.id), mainForm.conn);
            reader = command.ExecuteReader();
            while (reader.Read()) {
                ItemDrop itemDrop = new ItemDrop();
                itemDrop.itemid = item.id;
                itemDrop.creatureid = reader.GetInt32(0);
                itemDrop.percentage = reader.IsDBNull(1) ? DATABASE_NULL : reader.GetFloat(1);
                if (itemDrop.percentage > 100) {
                    itemDrop.min = 1;
                    itemDrop.max = (int)(itemDrop.percentage / 100.0 * 2.0);
                    itemDrop.percentage = 100;
                } else {
                    itemDrop.min = Math.Max(reader.GetInt32(2), 1);
                    itemDrop.max = Math.Max(reader.GetInt32(3), itemDrop.min);
                }

                item.itemdrops.Add(itemDrop);
            }
            command = new SQLiteCommand(String.Format("SELECT questid FROM QuestRewards WHERE itemid={0}", item.id), mainForm.conn);
            reader = command.ExecuteReader();
            while (reader.Read()) {
                item.rewardedBy.Add(getQuest(reader.GetInt32(0)));
            }
            command = new SQLiteCommand(String.Format("SELECT property, value FROM ItemProperties WHERE itemid={0}", item.id), mainForm.conn);
            reader = command.ExecuteReader();
            while (reader.Read()) {
                string property = reader.GetString(0);
                switch(property) {
                    case "Voc":
                        item.vocation = reader.GetString(1);
                        break;
                    case "Level":
                        item.level = reader.GetInt32(1);
                        break;
                    case "Def":
                        item.defensestr = reader["value"].ToString();
                        if (!int.TryParse(item.defensestr, out item.defense)) {
                            item.defense = int.Parse(item.defensestr.Split(' ')[0]);
                        }
                        break;
                    case "Attrib":
                        item.attrib = reader.GetString(1);
                        break;
                    case "Atk":
                        item.attack = reader.GetInt32(1);
                        break;
                    case "Atk+":
                        item.atkmod = reader.GetInt32(1);
                        break;
                    case "Hit+":
                        string str = reader["value"].ToString();
                        int.TryParse(str, out item.hitmod);
                        break;
                    case "Arm":
                        item.armor = reader.GetInt32(1);
                        break;
                    case "Range":
                        item.range = reader.GetInt32(1);
                        break;
                    case "Type":
                        item.type = reader.GetString(1);
                        break;
                }
            }

            return item;
        }
Example #23
0
 private AccountBalance BuildBalanceStructure(SQLiteDataReader reader)
 {
     long balance = reader.GetInt64(0);
     DateTime lastUpdated = DateTime.Parse(reader.GetString(1));
     return new AccountBalance(balance, lastUpdated);
 }
Example #24
0
 private static void ReadPlayerInfo(SQLiteDataReader reader, Player player)
 {
     player.Id = (uint)reader.GetInt32(0);
     player.Name = reader.GetString(1);
     player.Gender = (Gender)reader.GetByte(2);
     player.Vocation = (Vocation)reader.GetByte(3);
     player.Level = (ushort)reader.GetInt16(4);
     player.MagicLevel = reader.GetByte(5);
     player.Experience = (uint)reader.GetInt32(6);
     player.MaxHealth = (ushort)reader.GetInt16(7);
     player.MaxMana = (ushort)reader.GetInt16(8);
     player.Capacity = (uint)reader.GetInt32(9);
     player.Outfit.LookType = (ushort)reader.GetInt16(10);
     player.Outfit.Head = reader.GetByte(11);
     player.Outfit.Body = reader.GetByte(12);
     player.Outfit.Legs = reader.GetByte(13);
     player.Outfit.Feet = reader.GetByte(14);
     player.Outfit.Addons = reader.GetByte(15);
     if (reader.GetInt64(20) > 0)
     {
         int x = reader.GetInt32(16);
         int y = reader.GetInt32(17);
         int z = reader.GetInt32(18);
         player.SavedLocation = new Location(x, y, z);
         player.Direction = (Direction)reader.GetByte(19);
         player.LastLogin = new DateTime(reader.GetInt64(20));
     }
     player.Speed = (ushort)(220 + (2 * (player.Level - 1)));
 }
Example #25
0
 private Account BuildStructure(SQLiteDataReader reader)
 {
     long accountId = reader.GetInt64(0);
     string currency = reader.GetString(1);
     long ownerPersonId = reader.GetInt64(2);
     string name = reader.GetString(3);
     AccountType type = AccountTypeHelper.AccountTypeFromString(reader.GetString(4));
     return new Account(accountId, currency, ownerPersonId, name, type);
 }
Example #26
0
        private DataTable convertToDataTable(SQLiteDataReader reader)
        {
            DataTable table = new DataTable();
            DataTable dtb = new DataTable();
            table = reader.GetSchemaTable();

            for (int x = 0; x < table.Rows.Count; x++)
            {
                string colNome = table.Rows[x]["ColumnName"].ToString();
                dtb.Columns.Add(colNome, typeof(string));
            }

            dtb.AcceptChanges();

            while (reader.Read())
            {
                DataRow dr = dtb.NewRow();
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    string colNome = table.Rows[i]["ColumnName"].ToString();
                    string colType = table.Rows[i]["DataTypeName"].ToString();
                    string valor = string.Empty;
                    if (colType.ToUpper().Equals("NUMBER") || colType.ToUpper().Equals("INT") || colType.ToUpper().Equals("INTERGER"))
                    {
                        try
                        {
                            long Lvalor = reader.GetInt64(i);
                            if (Lvalor != null)
                                valor = Lvalor.ToString();
                        }
                        catch (InvalidCastException inv)
                        {
                            valor = string.Empty;
                        }
                    }
                    else if (colType.ToUpper().Equals("VARCHAR2") || colType.ToUpper().Equals("VARCHAR") || colType.ToUpper().Equals("TEXT"))
                        valor = reader.GetString(i).ToString();
                    dr[colNome] = valor;
                }
                dtb.Rows.Add(dr);

            }
            dtb.AcceptChanges();
            return dtb;
        }
        private UnspentOutput ReadUnspentOutput(SQLiteDataReader reader)
        {
            int col = 0;

            int sourceBlockHeight = reader.GetInt32(col++);
            byte[] transactionHash = ReadBytes(reader, col++);
            int outputNumber = reader.GetInt32(col++);
            ulong sum = (ulong) reader.GetInt64(col++);
            byte[] publicScript = ReadBytes(reader, col++);

            return new UnspentOutput(sourceBlockHeight, transactionHash, outputNumber, sum, publicScript);
        }
        private Way ReadWay(SQLiteDataReader reader)
        {
            var way = new Way();

            way.Id = reader.GetInt64(0);

            // evaluate name
            if (!reader.IsDBNull(1))
            {
                var name = reader.GetString(1);
                EvaluateName(name, way);
            }

            return way;
        }
        private Node ReadNode(SQLiteDataReader reader)
        {
            var node = new Node();

            node.Id = reader.GetInt64(0);
            node.Latitude = SQLiteSchemaTools.DBToGeo(reader.GetInt32(1));
            node.Longitude = SQLiteSchemaTools.DBToGeo(reader.GetInt32(2));

            // evaluate name
            if (!reader.IsDBNull(3))
            {
                var name = reader.GetString(3);
                EvaluateName(name, node);
            }

            return node;
        }