public async Task <IReadOnlyList <TradeModel> > GetTradesByDates(
            DateTime from,
            DateTime to,
            [FromQuery] int offset = 0,
            [FromQuery] int limit  = 100)
        {
            if (from >= to)
            {
                throw new ArgumentException($"Parameter '{nameof(from)}' must be earlier than parameter '{nameof(to)}'");
            }

            var data = await _historyRecordsRepository.GetByDatesAsync(
                from,
                to,
                offset,
                limit);

            return(Mapper.Map <IReadOnlyList <TradeModel> >(data));
        }
        public override async Task <GetTradesResponse> GetTradesByDates(GetTradesByDatesRequest request, ServerCallContext context)
        {
            var pagination = GrpcMapper.EnsurePagination(request.Pagination);
            var data       = await _historyRecordsRepository.GetByDatesAsync(
                request.From.ToDateTime(),
                request.To.ToDateTime(),
                pagination.Offset,
                pagination.Limit);

            var items = data.Select(GrpcMapper.Map).ToArray();

            return(new GetTradesResponse()
            {
                Pagination = new PaginatedInt32Response()
                {
                    Count = items.Length,
                    Offset = pagination.Offset + items.Length
                },
                Items = { items }
            });
        }