Ejemplo n.º 1
0
        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)}"));
            }
        }
Ejemplo n.º 2
0
        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)}"));
            }
        }
Ejemplo n.º 3
0
 public Task <IActionResult> Get([FromRoute] CandleSticksRequestModel request)
 {
     return(GetCandles(request));
 }