示例#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);
        }