Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        /// <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);
        }