public static void PrintAsset(AssetList.AssetListItem ali) { Console.WriteLine("itemID: {0} quantity: {1}", ali.ItemId, ali.Quantity); foreach (AssetList.AssetListItem childAsset in ali.Contents) { PrintAsset(childAsset); } }
public void GetAssetList() { AssetList assetList = EveApi.GetAssetList(AssetListType.Corporation, 432435, 234523, "apiKey"); AssetList.AssetListItem parent = GetAsset(197977287, assetList.AssetListItems); AssetList.AssetListItem child = GetAsset(331125392, parent.Contents); AssetList.AssetListItem grandChild = GetAsset(109617951, child.Contents); Assert.AreEqual(197977287, parent.ItemId); Assert.AreEqual(331125392, child.ItemId); Assert.AreEqual(109617951, grandChild.ItemId); }
private bool CompareAssets(AssetList.AssetListItem item1, AssetList.AssetListItem item2) { if (item1.ItemId != item2.ItemId) { return(false); } for (int i = 0; i < item1.Contents.Length; i++) { if (CompareAssets(item1.Contents[i], item2.Contents[i]) == false) { return(false); } } return(true); }
/// <summary> /// Create an AssetListItem by parsing a single row /// Recursively parses all contained assets /// </summary> /// <param name="assetRow"></param> /// <returns></returns> private static AssetList.AssetListItem ParseAssetRow(XmlNode assetRow) { AssetList.AssetListItem assetListItem = new AssetList.AssetListItem(); assetListItem.ItemId = Convert.ToInt32(assetRow.Attributes["itemID"].InnerText, CultureInfo.InvariantCulture); assetListItem.TypeId = Convert.ToInt32(assetRow.Attributes["typeID"].InnerText, CultureInfo.InvariantCulture); assetListItem.Quantity = Convert.ToInt64(assetRow.Attributes["quantity"].InnerText, CultureInfo.InvariantCulture); assetListItem.Singleton = Convert.ToBoolean(Convert.ToInt32(assetRow.Attributes["singleton"].InnerText, CultureInfo.InvariantCulture)); int flagValue = Convert.ToInt32(assetRow.Attributes["flag"].InnerText); if (Enum.IsDefined(typeof(InventoryFlagType), flagValue)) { assetListItem.Flag = (InventoryFlagType)Enum.ToObject(typeof(InventoryFlagType), flagValue); } else { assetListItem.Flag = InventoryFlagType.FlagUnknown; } if (assetRow.Attributes.GetNamedItem("locationID") != null) { assetListItem.LocationId = Convert.ToInt32(assetRow.Attributes["locationID"].InnerText, CultureInfo.InvariantCulture); } // Parse any contained assets and add them to this item's contents List <AssetList.AssetListItem> containedAssets = new List <AssetList.AssetListItem>(); foreach (XmlNode containedAssetRow in assetRow.SelectNodes("./rowset[@name='contents']/row")) { containedAssets.Add(ParseAssetRow(containedAssetRow)); } assetListItem.Contents = containedAssets.ToArray(); return(assetListItem); }