public async Task <IReadOnlyList <TradeModel> > GetTrades( [FromQuery] Guid walletId, [FromQuery] string assetId = null, [FromQuery] string assetPairId = null, [FromQuery] int offset = 0, [FromQuery] int limit = 100, [FromQuery] DateTime?from = null, [FromQuery] DateTime?to = null, [FromQuery(Name = "tradeType")] TradeType?tradeType = null) { bool?onlyBuyTrades = null; if (tradeType == TradeType.Buy) { onlyBuyTrades = true; } if (tradeType == TradeType.Sell) { onlyBuyTrades = false; } var data = await _historyRecordsRepository.GetTradesByWalletAsync(walletId, offset, limit, assetPairId, assetId, from, to, onlyBuyTrades); return(Mapper.Map <IReadOnlyList <TradeModel> >(data)); }
public override async Task <GetTradesResponse> GetTrades(GetTradesRequest request, ServerCallContext context) { var tradeType = request.TradeType; bool?onlyBuyTrades = null; if (tradeType == GrpcContract.Common.TradeType.Buy) { onlyBuyTrades = true; } if (tradeType == TradeType.Sell) { onlyBuyTrades = false; } var pagination = GrpcMapper.EnsurePagination(request.Pagination); var data = await _historyRecordsRepository .GetTradesByWalletAsync( Guid.Parse(request.WalletId), pagination.Offset, pagination.Limit, request.AssetPairId, request.AssetId, request.From?.ToDateTime(), request.To?.ToDateTime(), onlyBuyTrades); var items = data.Select(GrpcMapper.Map).ToArray(); return(new GetTradesResponse() { Pagination = new PaginatedInt32Response() { Count = items.Length, Offset = pagination.Offset + items.Length }, Items = { items } }); }