private Core.Domain.Transaction GetTransaction(TransactionNinjaModel t) { var block = new Core.Domain.Block() { Hash = t.Block.Hash, Height = t.Block.Height, Time = t.Block.Time, Confirmations = t.Block.Confirmations }; var inputs = t.DeserializeInputs.Select(x => new In() { TransactionId = x.TxId, Address = x.Address, Index = x.Index, Value = x.Value, AssetId = x.AssetId, Quantity = x.Quantity }).ToList(); var outputs = t.DeserializeOutputs.Select(x => new Out() { TransactionId = x.TxId, Address = x.Address, Index = x.Index, Value = x.Value, AssetId = x.AssetId, Quantity = x.Quantity }).ToList(); var assets = new List <Core.Domain.Asset>(); foreach (var k in t.Asset.Keys) { var assetRecord = t.Asset[k]; var asset = new Core.Domain.Asset(); asset.Id = k; if (t.TransactionUrl != null) { asset.MetadataUrl = t.TransactionUrl.ToString(); } asset.Input = assetRecord.AssetDataInput.Select(x => new In() { TransactionId = x.TxId, Address = x.Address, Index = x.Index, Value = x.Value, AssetId = x.AssetId, Quantity = x.Quantity }).ToList(); asset.Output = assetRecord.AssetDataOutput.Select(x => new Out() { TransactionId = x.TxId, Address = x.Address, Index = x.Index, Value = x.Value, AssetId = x.AssetId, Quantity = x.Quantity }).ToList(); assets.Add(asset); } var transaction = new Core.Domain.Transaction() { TransactionId = t.TxId, Time = block.Time, Hex = t.Hex, Fees = t.Fees, IsCoinBase = t.IsCoinBase, IsColor = t.IsColor, Block = block, Blockhash = t.Block.Hash, TransactionIn = inputs, TransactionsOut = outputs, Assets = assets }; return(transaction); }
public async Task <Transaction> GetTransaction(string id) { var t = await _client.GetTransactionAsync(id); var block = new Block() { Hash = t.Block.Hash, Height = t.Block.Height, Time = t.Block.Time, Confirmations = t.Block.Confirmations }; var inputs = t.DeserializeInputs.Select(x => new In() { TransactionId = x.TxId, Address = x.Address, Index = x.Index, Value = x.Value, AssetId = x.AssetId, Quantity = x.Quantity }).ToList(); var outputs = t.DeserializeOutputs.Select(x => new Out() { TransactionId = x.TxId, Address = x.Address, Index = x.Index, Value = x.Value, AssetId = x.AssetId, Quantity = x.Quantity }).ToList(); var assets = new List <Core.Domain.Asset>(); foreach (var k in t.Asset.Keys) { var assetRecord = t.Asset[k]; var asset = new Core.Domain.Asset(); asset.Id = k; asset.MetadataUrl = t.TransactionUrl?.ToString(); asset.Input = assetRecord.AssetDataInput.Select(x => new In() { TransactionId = x.TxId, Address = x.Address, Index = x.Index, Value = x.Value, AssetId = x.AssetId, Quantity = x.Quantity }).ToList(); asset.Output = assetRecord.AssetDataOutput.Select(x => new Out() { TransactionId = x.TxId, Address = x.Address, Index = x.Index, Value = x.Value, AssetId = x.AssetId, Quantity = x.Quantity }).ToList(); assets.Add(asset); } var transaction = new Transaction() { TransactionId = t.TxId, Time = block.Time, Hex = t.Hex, Fees = t.Fees, IsCoinBase = t.IsCoinBase, IsColor = t.IsColor, Block = block, Blockhash = t.Block.Hash, TransactionIn = inputs, TransactionsOut = outputs, Assets = assets }; return(transaction); }