Пример #1
0
        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);
        }