public override async Task <AssetsDictionaryResponse> AssetsDictionary(Empty request, ServerCallContext context) { var result = new AssetsDictionaryResponse(); var categories = await _assetsService.AssetCategoryGetAllAsync(); string clientId = context.GetClientId(); string partnerId = context.GetParnerId(); var assets = await _assetsHelper.GetAssetsAvailableToClientAsync(clientId, partnerId, true); result.Body = new AssetsDictionaryResponse.Types.Body(); result.Body.Categories.AddRange(_mapper.Map <List <AssetCategory> >(categories)); result.Body.Assets.AddRange(_mapper.Map <List <Asset> >(assets)); var popularAssetPairs = await _assetsHelper.GetPopularPairsAsync(assets.Select(x => x.Id).ToList()); foreach (var asset in result.Body.Assets) { if (popularAssetPairs.ContainsKey(asset.Id)) { asset.PopularPairs.AddRange(popularAssetPairs[asset.Id]); } } return(result); }
public override async Task <AssetsDictionaryResponse> AssetsDictionary(Empty request, ServerCallContext context) { var session = SessionFromContext(context); var assets = await _marketDataService.GetAssetsByTenant(session.TenantId); var response = new AssetsDictionaryResponse(); var fiatAssets = new List <string> { "CHF", "EUR", "USD" }; var cryptoAssets = new List <string> { "BTC", "ETH", "ETHtest", "BTCtest" }; //todo: add all parameters in AssetService foreach (var asset in assets.Where(a => !a.IsDisabled)) { response.Assets.Add( new Asset( id: asset.Symbol, name: asset.Symbol, symbol: asset.Symbol, displayId: asset.Symbol, accuracy: asset.Accuracy, kycNeeded: true, categoryId: DefaultAssetCategoryId, cardDeposit: fiatAssets.Contains(asset.Symbol), swiftDeposit: fiatAssets.Contains(asset.Symbol), blockchainDeposit: cryptoAssets.Contains(asset.Symbol), swiftWithdrawal: fiatAssets.Contains(asset.Symbol), forwardWithdrawa: false, crosschainWithdrawal: false, isTrusted: true, canBeBase: true, iconUrl: AssetIconUrl )); } //todo: Add category response.Categories.Add( new AssetCategory { Id = DefaultAssetCategoryId, IconUrl = AssetIconUrl, Name = "Trading Assets" }); return(response); }