public async Task <IActionResult> GetCandles([FromQuery] CandleSticksRequestModel request) { try { var assetPair = await _assetsHelper.GetAssetPairAsync(request.AssetPairId); if (assetPair == null) { return(NotFound("Asset pair not found")); } var candleHistoryService = _candlesServiceProvider.Get(request.Type); var candles = await candleHistoryService.GetCandlesHistoryAsync( request.AssetPairId, request.PriceType, request.TimeInterval, request.FromMoment, request.ToMoment); var baseAsset = await _assetsHelper.GetAssetAsync(assetPair.BaseAssetId); var quotingAsset = await _assetsHelper.GetAssetAsync(assetPair.QuotingAssetId); return(Ok( candles.ToResponseModel( baseAsset.DisplayAccuracy ?? baseAsset.Accuracy, quotingAsset.DisplayAccuracy ?? quotingAsset.Accuracy))); } catch (ErrorResponseException ex) { var errors = ex.Error.ErrorMessages.Values.SelectMany(s => s.Select(ss => ss)); return(NotFound($"{string.Join(',', errors)}")); } }
public async Task <IActionResult> Get([FromRoute] CandleSticksRequestModel request) { try { var candleHistoryService = _candlesServiceProvider.Get(request.Type); var candles = await candleHistoryService.GetCandlesHistoryAsync( request.AssetPairId, (CandlePriceType)Enum.Parse(typeof(CandlePriceType), request.PriceType.ToString()), (CandleTimeInterval)Enum.Parse(typeof(CandleTimeInterval), request.TimeInterval.ToString()), request.FromMoment, request.ToMoment); var assetPair = (await _assetPairs.Values()).FirstOrDefault(x => x.Id == request.AssetPairId); var baseAsset = await _assetsService.AssetGetAsync(assetPair.BaseAssetId); var quotingAsset = await _assetsService.AssetGetAsync(assetPair.QuotingAssetId); return(Ok( candles.ToResponseModel( baseAsset.DisplayAccuracy ?? baseAsset.Accuracy, quotingAsset.DisplayAccuracy ?? quotingAsset.Accuracy))); } catch (ErrorResponseException ex) { var errors = ex.Error.ErrorMessages.Values.SelectMany(s => s.Select(ss => ss)); return(NotFound($"{string.Join(',', errors)}")); } }
public Task <IActionResult> Get([FromRoute] CandleSticksRequestModel request) { return(GetCandles(request)); }