public async Task <IActionResult> GetAssetPairRatesById([FromRoute] AssetPairRequestModel request) { if (string.IsNullOrWhiteSpace(request.AssetPairId)) { return(BadRequest()); } var assetPair = await _assetsHelper.GetAssetPairAsync(request.AssetPairId); if (assetPair == null || assetPair.IsDisabled) { return(NotFound()); } var allAssets = await _assetsHelper.GetAllAssetsAsync(); var allTradableNondisabledAssets = new HashSet <string>( allAssets .Where(x => !x.IsDisabled && x.IsTradable) .Select(x => x.Id)); if (!allTradableNondisabledAssets.Contains(assetPair.BaseAssetId) || !allTradableNondisabledAssets.Contains(assetPair.QuotingAssetId)) { return(NotFound()); } var marketProfile = await _marketProfileService.ApiMarketProfileGetAsync(); var feedData = marketProfile.FirstOrDefault(itm => itm.AssetPair == request.AssetPairId); if (feedData == null) { return(NotFound()); } return(Ok(AssetPairRatesResponseModel.Create(new List <AssetPairRateModel> { feedData.ToApiModel() }))); }
public async Task <IActionResult> GetAssetPairRatesById([FromRoute] AssetPairRequestModel request) { var asset = (await _assetPairs.Values()).FirstOrDefault(x => x.Id == request.AssetPairId); if (asset == null) { return(NotFound($"AssetPair {request.AssetPairId} does not exist")); } var marketProfile = await _marketProfileService.ApiMarketProfileGetAsync(); var feedData = marketProfile.FirstOrDefault(itm => itm.AssetPair == request.AssetPairId); if (feedData == null) { return(NotFound($"No data exist for {request.AssetPairId}")); } return(Ok(AssetPairRatesResponseModel.Create(new List <AssetPairRateModel> { feedData.ConvertToApiModel() }))); }