public override async Task <TradesResponse> GetTrades(TradesRequest request, ServerCallContext context) { var result = await _validationService.ValidateTradesRequestAsync(request.AssetPairId, request.Offset, request.Take); if (result != null) { return(new TradesResponse { Error = new Error { Code = _mapper.Map <ErrorCode>(result.Code), Message = result.Message } }); } DateTime?from = null; DateTime?to = null; if (request.OptionalFromCase != TradesRequest.OptionalFromOneofCase.None) { from = request.From.ToDateTime(); } if (request.OptionalToCase != TradesRequest.OptionalToOneofCase.None) { to = request.To.ToDateTime(); } var orderAction = request.OptionalSideCase == TradesRequest.OptionalSideOneofCase.None ? (OrderAction?)null : _mapper.Map <OrderAction>(request.Side); if (request.Take == 0) { request.Take = Constants.MaxPageSize; } var trades = await _historyClient.GetTradersAsync(context.GetHttpContext().User.GetWalletId(), request.AssetPairId, request.Offset, request.Take, orderAction, from, to); var res = new TradesResponse(); var data = _mapper.Map <List <Trade> >(trades); res.Payload.AddRange(data); return(res); }
public async Task <IActionResult> GetTrades( [FromQuery] string assetPairId = null, [FromQuery] OrderAction?side = null, [FromQuery] int?offset = 0, [FromQuery] int?take = 100, [FromQuery] double?from = null, [FromQuery] double?to = null ) { var result = await _validationService.ValidateOrdersRequestAsync(assetPairId, offset, take); if (result != null) { throw HftApiException.Create(result.Code, result.Message) .AddField(result.FieldName); } DateTime?fromDate = from == null ? (DateTime?)null : DateTime.UnixEpoch.AddMilliseconds(from.Value); DateTime?toDate = to == null ? (DateTime?)null : DateTime.UnixEpoch.AddMilliseconds(to.Value); var trades = await _historyClient.GetTradersAsync(User.GetWalletId(), assetPairId, offset, take, side, fromDate, toDate); return(Ok(ResponseModel <IReadOnlyCollection <TradeModel> > .Ok(_mapper.Map <IReadOnlyCollection <TradeModel> >(trades)))); }