Beispiel #1
0
        /// <inheritdoc/>
        public async Task <Order[]> ListOrders(GameItem gaGet, GameItem gaGive, Profile profile)
        {
            var jsonStr = await GetJson(
                string.Format("exchange/orders/{0},{1},{2}",
                              gaGet != null ? gaGet.Metadata.Get <string>("OwnerAddress") : "",
                              gaGive != null ? gaGive.Metadata.Get <string>("OwnerAddress") : "",
                              profile != null ? profile.ID : ""), null);

            if (!string.IsNullOrEmpty(jsonStr))
            {
                var orders = JsonConvert.DeserializeObject <Order[]>(jsonStr);
                GameItemsParams[] gameItemsParams = new GameItemsParams[orders.Length * 2];
                for (var i = 0; i < orders.Length; ++i)
                {
                    gameItemsParams[i * 2] = new GameItemsParams();
                    gameItemsParams[i * 2].ContractAddress = orders[i].tokenGive;
                    gameItemsParams[i * 2].TokenId         = orders[i].tokenIdGive.ToString();

                    gameItemsParams[i * 2 + 1] = new GameItemsParams();
                    gameItemsParams[i * 2 + 1].ContractAddress = orders[i].tokenGet;
                }

                GameItem[] itemsRetrieved = await Hoard.GetItems(gameItemsParams);

                for (var i = 0; i < orders.Length; ++i)
                {
                    orders[i].UpdateGameItemObjs(itemsRetrieved[i * 2 + 1], itemsRetrieved[i * 2]);
                }

                return(orders);
            }

            return(new Order[0]);
        }
        /// <inheritdoc/>
        public override async Task <GameItem> GetGameItem(GameItemsParams gameItemsParams)
        {
            Metadata meta = new Metadata(Address, gameItemsParams.Amount);
            var      item = new GameItem(Game, await GetSymbol(), meta);

            item.State = await GetTokenState();

            return(item);
        }
        /// <summary>
        /// Returns particular Item based on query parameters
        /// </summary>
        /// <param name="gameItemsParams">query parameters</param>
        /// <returns></returns>
        public override async Task <GameItem> GetGameItem(GameItemsParams gameItemsParams)
        {
            var      id   = BigInteger.Parse(gameItemsParams.TokenId, NumberStyles.AllowHexSpecifier);
            Metadata meta = new Metadata(Address, id);
            GameItem item = new GameItem(Game, await GetSymbol(), meta);

            item.State = await GetTokenState(id);

            return(item);
        }
 /// <summary>
 /// Returns specific Game Item based on query parameters
 /// </summary>
 /// <param name="gameItemsParams">query parameters</param>
 /// <returns></returns>
 public abstract Task <GameItem> GetGameItem(GameItemsParams gameItemsParams);