public async Task <GetNftByTypeSharedResponse> Handle ( GetNftByTypeSharedRequest aGetNftByTypeSharedRequest, CancellationToken aCancellationToken ) { var aNftRequest = new GetNftByTypeServiceRequest { GetNftId = aGetNftByTypeSharedRequest.GetNftId }; GetNftByTypeServiceResponse response = await Mediator.Send(aNftRequest); var nftDto = new NftTemplate() { Name = response.Name, Symbol = response.Symbol, AttachedTokens = response.AttachedTokens, MintLimit = response.MintLimit }; return(new GetNftByTypeSharedResponse(new System.Guid()) { NftTypeDto = nftDto }); }
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); }
protected override void Initialize() { TotalTokenTypes = 0; TokenDataList = new List <TokenBase>(); OwnedTokenIdList = new List <uint>(); CurrentTokenId = 0; CurrentTokenData = null; CurrentTokenNftType = 0; TotalNftTypes = 0; TemplateDataList = new List <NftTemplate>(); CurrentNftTemplate = new NftTemplate(); }
public override Task <WebThreeState> Handle ( ChangeCurrentNftAction aChangeCurrentNftRequest, CancellationToken aCancellationToken ) { string TemplateName = aChangeCurrentNftRequest.TemplateName; //string requestUri = QueryHelpers.AddQueryString(GetNftByTypeSharedRequest.Route, "GetNftType", getNftId.ToString()); NftTemplate newSelectedTemplate = WebThreeState.TemplateDataList.Find(nft => nft.Name == TemplateName); WebThreeState.CurrentNftTemplate = newSelectedTemplate; return(Task.FromResult(WebThreeState)); }
public async Task <GetNftByTypeServiceResponse> Handle(GetNftByTypeServiceRequest aGetNftByTypeServiceRequest, CancellationToken aCancellationToken) { Function aGetNftByTypeFunction = NftCreatorInstance.Instance.GetFunction("getNFTData"); var aGetNftByTypeFunctionMessage = new GetNftByTypeFunctionInput { NftId = aGetNftByTypeServiceRequest.GetNftId }; GetNftByTypeOutputDto aTemplate = await aGetNftByTypeFunction.CallDeserializingToObjectAsync <GetNftByTypeOutputDto>(aGetNftByTypeFunctionMessage.NftId); var response = new NftTemplate { Name = aTemplate.TokenName, Symbol = aTemplate.TokenSymbol, MintLimit = aTemplate.TokenMintLimit, AttachedTokens = aTemplate.TokenAttachedTokens }; return(new GetNftByTypeServiceResponse { NftTypeData = response }); }
public async Task Should_Generate_NftTypesListWithIds() { var NftTypeList = new List <NftTemplate>(); var fetchNftTypes = new GetNftTypesClientFeaturesAction(); WebThreeState response = await Mediator.Send(fetchNftTypes); int NumOfTemplates = (int)response.TotalNftTypes; // Nft templates are not zero indexed. for (uint ctr = 1; ctr <= NumOfTemplates; ctr++) { string requestUri = GetNftByTypeSharedRequest.RouteFactory((int)ctr); GetNftByTypeSharedResponse templateResponse = await HttpClient.GetJsonAsync <GetNftByTypeSharedResponse>(requestUri); templateResponse.NftTypeData.ShouldBeOfType <NftTemplate>(); var template = new NftTemplate() { NftId = ctr, Name = templateResponse.NftTypeData.Name, Symbol = templateResponse.NftTypeData.Symbol, MintLimit = templateResponse.NftTypeData.MintLimit, AttachedTokens = templateResponse.NftTypeData.AttachedTokens }; NftTypeList.Add(template); // NftTypeDict[ctr] = templateResponse; // } NftTypeList[3].NftId.ShouldBe((uint)4); //NftTypeList[3].Name.ShouldBe("TesterTemplate_0"); //NftTypeDict[4].Name.ShouldBe("TesterTemplate_0"); }
public override async Task <WebThreeState> Handle ( GetNftTypesClientFeaturesAction aGetNftTypesClientRequest, CancellationToken aCancellationToken ) { _TemplateList = new List <NftTemplate>(); GetNftCountSharedResponse aSharedResponse = await HttpClient.GetJsonAsync <GetNftCountSharedResponse>(GetNftCountSharedRequest.Route); int nftCount = (int)aSharedResponse.NftCount; for (int ctr = 1; ctr <= nftCount; ctr++) { string requestUri = GetNftByTypeSharedRequest.RouteFactory(ctr); GetNftByTypeSharedResponse templateResponse = await HttpClient.GetJsonAsync <GetNftByTypeSharedResponse>(requestUri); var template = new NftTemplate() { NftId = (uint)ctr, Name = templateResponse.NftTypeDto.Name, Symbol = templateResponse.NftTypeDto.Symbol, MintLimit = templateResponse.NftTypeDto.MintLimit, AttachedTokens = templateResponse.NftTypeDto.AttachedTokens }; _TemplateList.Add(template); } var TemplateInfoContainer = new WebThreeState { TemplateDataList = _TemplateList }; TemplateInfoContainer.TotalNftTypes = aSharedResponse.NftCount; return(TemplateInfoContainer); }
public override async Task <WebThreeState> Handle ( GetNftTypesClientFeaturesAction aGetNftTypesClientRequest, CancellationToken aCancellationToken ) { _TemplateList = new List <NftTemplate>(); GetNftTypesSharedResponse aSharedResponse = await HttpClient.GetJsonAsync <GetNftTypesSharedResponse>(GetNftTypesSharedRequest.Route); int NumOfTemplates = (int)aSharedResponse.TotalNftTypes; for (uint ctr = 1; ctr <= NumOfTemplates; ctr++) { string requestUri = GetNftByTypeSharedRequest.RouteFactory((int)ctr); GetNftByTypeSharedResponse templateResponse = await HttpClient.GetJsonAsync <GetNftByTypeSharedResponse>(requestUri); var template = new NftTemplate() { NftId = ctr, Name = templateResponse.NftTypeData.Name, Symbol = templateResponse.NftTypeData.Symbol, MintLimit = templateResponse.NftTypeData.MintLimit, AttachedTokens = templateResponse.NftTypeData.AttachedTokens }; _TemplateList.Add(template); } WebThreeState.TemplateDataList = _TemplateList; WebThreeState.TotalNftTypes = aSharedResponse.TotalNftTypes; return(WebThreeState); }
//List<NftTemplate> TemplateDataList => WebThreeState.TemplateDataList; public async Task ShouldBuildTokenList() { 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) { // TokenId var ownedToken = new TokenBase() { TokenId = token }; // TokenNFtTypeId string getNftTypeUri = GetTokenNftTypeSharedRequest.RouteFactory((int)token); WebThreeState NftTypeContainer = await Mediator.Send(new FetchTokenNftTypeAction() { TokenId = (int)ownedToken.TokenId }); // TokenNftTypeData Should already have the data in state so no need to make a service call NftTemplate nftType = webThree.TemplateDataList.Find(nft => nft.NftId == NftTypeContainer.CurrentTokenNftType); ownedToken.TemplateData = nftType; // Token Balance BalanceOfSharedResponse BalanceContainer = await HttpClient.GetJsonAsync <BalanceOfSharedResponse>(BalanceOfSharedRequest.RouteFactory((int)token)); ownedToken.Balance = BalanceContainer.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 TokenDataList.Add(ownedToken); } else { ownedToken.Data = DataString.TokenDataString; TokenDataList.Add(ownedToken); } } TokenDataList.Count.ShouldBe(3); }