private ObjectPartInventoryItem ObjectPartInventoryItemFromDbReader(NpgsqlDataReader dbReader) { var item = new ObjectPartInventoryItem(dbReader.GetUUID("InventoryID")) { AssetID = dbReader.GetUUID("AssetID"), AssetType = dbReader.GetEnum <AssetType>("AssetType"), CreationDate = dbReader.GetDate("CreationDate"), Creator = dbReader.GetUGUI("Creator"), Description = (string)dbReader["Description"], Flags = dbReader.GetEnum <InventoryFlags>("Flags"), Group = dbReader.GetUGI("Group"), IsGroupOwned = (bool)dbReader["GroupOwned"], InventoryType = dbReader.GetEnum <InventoryType>("InventoryType"), LastOwner = dbReader.GetUGUI("LastOwner"), Name = (string)dbReader["Name"], Owner = dbReader.GetUGUI("Owner"), ParentFolderID = dbReader.GetUUID("PrimID"), NextOwnerAssetID = dbReader.GetUUID("NextOwnerAssetID"), ExperienceID = dbReader.GetUEI("ExperienceID"), CollisionFilter = new ObjectPartInventoryItem.CollisionFilterParam { DbSerialization = dbReader.GetBytes("CollisionFilterData") }, }; item.Permissions.Base = dbReader.GetEnum <InventoryPermissionsMask>("BasePermissions"); item.Permissions.Current = dbReader.GetEnum <InventoryPermissionsMask>("CurrentPermissions"); item.Permissions.EveryOne = dbReader.GetEnum <InventoryPermissionsMask>("EveryOnePermissions"); item.Permissions.Group = dbReader.GetEnum <InventoryPermissionsMask>("GroupPermissions"); item.Permissions.NextOwner = dbReader.GetEnum <InventoryPermissionsMask>("NextOwnerPermissions"); item.SaleInfo.Type = dbReader.GetEnum <InventoryItem.SaleInfoData.SaleType>("SaleType"); item.SaleInfo.Price = (int)dbReader["SalePrice"]; item.SaleInfo.PermMask = dbReader.GetEnum <InventoryPermissionsMask>("SalePermMask"); var grantinfo = new ObjectPartInventoryItem.PermsGranterInfo(); if (((string)dbReader["PermsGranter"]).Length != 0) { try { grantinfo.PermsGranter = dbReader.GetUGUI("PermsGranter"); } catch { /* no action required */ } } grantinfo.PermsMask = dbReader.GetEnum <ScriptPermissions>("PermsMask"); grantinfo.DebitPermissionKey = dbReader.GetUUID("DebitPermissionKey"); item.PermsGranter = grantinfo; return(item); }