Ejemplo n.º 1
0
        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));
        }