public async Task <FileDto> GetTransactionsToExcel(GetAllTransactionsInput input) { var filteredTransactions = _transactionRepository.GetAll().AppendTransactionMainFilter(input, AbpSession.UserId); var transactions = from o in filteredTransactions join o1 in _bookingRepository.GetAll() on o.BookingId equals o1.Id into j1 from s1 in j1.DefaultIfEmpty() join o2 in _tourRepository.GetAll() on s1.TourId equals o2.Id into j2 from s2 in j2.DefaultIfEmpty() select new GetTransactionForViewDto() { Transaction = new TransactionDto { Id = o.Id, TransactionDate = o.TransactionDate, Amount = o.Amount, BookingId = o.BookingId, CardNumber = o.CardNumber.Substring(o.CardNumber.Length - 4), NameOnCard = o.NameOnCard, Status = o.Status }, TourName = s2.Name, BookingCode = "B-" + s1.Id }; var result = await transactions.OrderBy(input.Sorting ?? "Transaction.Id asc").ToListAsync(); return(_transactionsExcelExporter.ExportToFile(result)); }
public async Task <FileDto> GetTransactionsToExcel(GetAllTransactionsForExcelInput input) { var filteredTransactions = _transactionRepository.GetAll() .WhereIf(!string.IsNullOrWhiteSpace(input.Filter), e => false || e.Time.Contains(input.Filter) || e.Address.Contains(input.Filter) || e.Reason.Contains(input.Filter) || e.Remark.Contains(input.Filter)) .WhereIf(input.MinTransTypeFilter != null, e => e.TransType >= input.MinTransTypeFilter) .WhereIf(input.MaxTransTypeFilter != null, e => e.TransType <= input.MaxTransTypeFilter); var query = (from o in filteredTransactions select new GetTransactionForViewDto() { Transaction = new TransactionDto { TransType = o.TransType, Id = o.Id } }); var transactionListDtos = await query.ToListAsync(); return(_transactionsExcelExporter.ExportToFile(transactionListDtos)); }