public async Task <TransactionHistoryPage <TransactionHistory> > GetEvents(TransactionHistoryQuery transactionHistoryQuery) { if (transactionHistoryQuery.From != null) { transactionHistoryQuery.From = transactionHistoryQuery.From.Value.ToUniversalTime(); } if (transactionHistoryQuery.To != null) { transactionHistoryQuery.To = transactionHistoryQuery.To.Value.ToUniversalTime(); } var sorts = new Sorts <Data.Models.TransactionHistory>(); sorts.Add(true, x => x.OccuredAt, true); var filters = new Filters <Data.Models.TransactionHistory>(); filters.Add(!string.IsNullOrEmpty(transactionHistoryQuery.NodeId), x => x.NodeId == transactionHistoryQuery.NodeId); filters.Add(transactionHistoryQuery.NodeIds != null && transactionHistoryQuery.NodeIds.Any(), x => transactionHistoryQuery.NodeIds.Contains(x.NodeId)); filters.Add(transactionHistoryQuery.From != null, x => x.OccuredAt > transactionHistoryQuery.From); filters.Add(transactionHistoryQuery.To != null, x => x.OccuredAt < transactionHistoryQuery.To); var result = await _transactionHistoryRepository.GetTransactionHistory(transactionHistoryQuery.CurrentPage, transactionHistoryQuery.PageSize, sorts, filters); return(_mapper.Map <TransactionHistoryPage <TransactionHistory> >(result)); }