/// <summary> /// Gets an export of FinancialTransaction Records /// </summary> /// <param name="page">The page being requested (where first page is 1).</param> /// <param name="pageSize">The number of records to provide per page. NOTE: This is limited to the 'API Max Items Per Page' global attribute.</param> /// <param name="exportOptions">The export options.</param> /// <returns></returns> public FinancialTransactionsExport GetFinancialTransactionExport(int page, int pageSize, FinancialTransactionExportOptions exportOptions) { IQueryable <FinancialTransaction> financialTransactionQry; SortProperty sortProperty = exportOptions.SortProperty; RockContext rockContext = this.Context as RockContext; if (exportOptions.DataViewId.HasValue) { financialTransactionQry = ModelExport.QueryFromDataView <FinancialTransaction>(rockContext, exportOptions.DataViewId.Value); } else { financialTransactionQry = this.Queryable(); } if (sortProperty != null) { financialTransactionQry = financialTransactionQry.Sort(sortProperty); } if (exportOptions.ModifiedSince.HasValue) { financialTransactionQry = financialTransactionQry.Where(a => a.ModifiedDateTime.HasValue && a.ModifiedDateTime >= exportOptions.ModifiedSince.Value); } if (exportOptions.StartDateTime.HasValue) { financialTransactionQry = financialTransactionQry.Where(a => a.TransactionDateTime.HasValue && a.TransactionDateTime >= exportOptions.StartDateTime.Value); } if (exportOptions.EndDateTime.HasValue) { financialTransactionQry = financialTransactionQry.Where(a => a.TransactionDateTime.HasValue && a.TransactionDateTime < exportOptions.EndDateTime.Value); } var skip = (page - 1) * pageSize; FinancialTransactionsExport financialTransactionsExport = new FinancialTransactionsExport(); financialTransactionsExport.Page = page; financialTransactionsExport.PageSize = pageSize; financialTransactionsExport.TotalCount = financialTransactionQry.Count(); var pagedFinancialTransactionQry = financialTransactionQry .Include(a => a.AuthorizedPersonAlias) .Include(a => a.TransactionDetails) .Include(a => a.FinancialPaymentDetail) .Include(a => a.TransactionDetails.Select(d => d.Account)) .AsNoTracking() .Skip(skip) .Take(pageSize); var financialTransactionList = pagedFinancialTransactionQry.ToList(); financialTransactionsExport.FinancialTransactions = financialTransactionList.Select(f => new FinancialTransactionExport(f)).ToList(); AttributesExport.LoadAttributeValues(exportOptions, rockContext, financialTransactionsExport.FinancialTransactions, pagedFinancialTransactionQry); return(financialTransactionsExport); }
/// <summary> /// Copies the base properties from a source FinancialTransactionsExport object /// </summary> /// <param name="source">The source.</param> public void CopyPropertiesFrom(FinancialTransactionsExport source) { this.FinancialTransactions = source.FinancialTransactions; this.Page = source.Page; this.PageSize = source.PageSize; this.TotalCount = source.TotalCount; }