private async Task <NftTemplate> GetNft(uint aToken) { // TokenNftTypeData Should already have the data in state so no need to make a service call GetTokenNftTypeSharedResponse nftContainer = await HttpClient.GetJsonAsync <GetTokenNftTypeSharedResponse>(GetTokenNftTypeSharedRequest.RouteFactory((int)aToken)); NftTemplate template = WebThreeState.TemplateDataList.Find(aNft => aNft.NftId == nftContainer.NftType); return(template); }
public async Task SharedShouldGetTokenNftType() { // Arrange var getNftSharedRequest = new GetTokenNftTypeSharedRequest { TokenId = 3 }; // Act GetTokenNftTypeSharedResponse response = await Mediator.Send(getNftSharedRequest); //Assert response.NftType.ShouldBe((uint)4); }
public override async Task <WebThreeState> Handle ( FetchTokenNftTypeAction aFetchTokenNftTypeClientRequest, CancellationToken aCancellationToken ) { int TokenId = aFetchTokenNftTypeClientRequest.TokenId; string requestUri = GetTokenNftTypeSharedRequest.RouteFactory(TokenId); GetTokenNftTypeSharedResponse type = await HttpClient.GetJsonAsync <GetTokenNftTypeSharedResponse>(requestUri); WebThreeState.CurrentTokenNftType = type.NftType; return(WebThreeState); }
public async Task ShouldBuildTokenListInPieces() { var SeparateTokenDataList = new List <TokenBase>(); WebThreeState WebThree = await Mediator.Send(new GetNftTypesClientFeaturesAction()); GetAllOwnedTokensSharedResponse aTokenList = await HttpClient.GetJsonAsync <GetAllOwnedTokensSharedResponse>(GetAllOwnedTokensSharedRequest.Route); aTokenList.TokenIdList.Count.ShouldBeGreaterThan(3); aTokenList.TokenIdList.Contains(3).ShouldBe(true); aTokenList.TokenIdList.Contains(4).ShouldBe(true); aTokenList.TokenIdList.Contains(5).ShouldBe(true); foreach (uint token in aTokenList.TokenIdList) { // Start the list with TokenId var ownedToken = new TokenBase() { TokenId = token }; //SeparateTokenDataList.Add(ownedToken); string getNftTypeUri = GetTokenNftTypeSharedRequest.RouteFactory((int)token); GetTokenNftTypeSharedResponse aNftTypeSharedResponse = await HttpClient.GetJsonAsync <GetTokenNftTypeSharedResponse>(getNftTypeUri); // TokenNftTypeData Should already have the data in state so no need to make a service call NftTemplate nftType = WebThree.TemplateDataList.Find(nft => nft.NftId == aNftTypeSharedResponse.NftType); ownedToken.TemplateData = nftType; // Token Balance BalanceOfSharedResponse aBalanceContainer = await HttpClient.GetJsonAsync <BalanceOfSharedResponse>(BalanceOfSharedRequest.RouteFactory((int)token)); ownedToken.Balance = aBalanceContainer.Balance; // Token ImmutableData (Data) ownedToken.TemplateData.ShouldBeOfType <NftTemplate>(); ViewTokenDataSharedResponse dataString = await HttpClient.GetJsonAsync <ViewTokenDataSharedResponse>(ViewTokenDataSharedRequest.RouteFactory((int)token)); dataString.TokenDataString.ShouldNotBe(null); if (token == 3) { byte[] serializedImmutableData = Convert.FromBase64String(dataString.TokenDataString); // need to figure out a way to get the type occording to the nftId ImmutableData deserializedObject = Serializer.Deserialize <ImmutableData>(serializedImmutableData, options); // options == 0 ownedToken.ImmDataObj = deserializedObject; // Add to StateList SeparateTokenDataList.Add(ownedToken); } else { ownedToken.Data = dataString.TokenDataString; SeparateTokenDataList.Add(ownedToken); } } SeparateTokenDataList.Count.ShouldBeGreaterThan(3); }