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 }
            });
        }