public void WhereWhere_Array_ExecutionIsDeferred() { bool funcCalled = false; Func <bool>[] source = new Func <bool>[] { () => { funcCalled = true; return(true); } }; IEnumerable <Func <bool> > query = source.Where(value => value()).Where(value => value()); Assert.False(funcCalled); query = source.Where((value, index) => value()); Assert.False(funcCalled); }
public void WhereWhere_Array_ExecutionIsDefered() { bool funcCalled = false; Func<bool>[] source = new Func<bool>[] { () => { funcCalled = true; return true; } }; IEnumerable<Func<bool>> query = source.Where(value => value()).Where(value => value()); Assert.False(funcCalled); query = source.Where((value, index) => value()); Assert.False(funcCalled); }
public void Execute() { var session = objSpace.Session; if (paramObj == null) { throw new UserFriendlyException("Param Object cannot be null."); } #region Get Lookup Objects genLedgerFinActivityJoin = new List <GenLedgerFinActivityJoin>(); var jnlGroupKeysInParams = paramObj.JournalGroupParams.Select(p => p.JournalGroup.Oid); var jnlGroupsInParams = new XPCollection <FinJournalGroup>(session, new InOperator("Oid", jnlGroupKeysInParams)); var accountMaps = new XPCollection <FinAccount>(session, new InOperator("JournalGroup", jnlGroupsInParams)); var accountsToMap = accountMaps.Select(k => k.Account); var activityMaps = new Func <List <FinActivity> >(() => { var sortProps = new SortingCollection(null); sortProps.Add(new SortProperty("RowIndex", DevExpress.Xpo.DB.SortingDirection.Ascending)); var criteria = CriteriaOperator.And( new InOperator("JournalGroup", jnlGroupsInParams), new BinaryOperator("Enabled", true, BinaryOperatorType.Equal)); var result = session.GetObjects(session.GetClassInfo(typeof(FinActivity)), criteria, sortProps, 0, false, true) .Cast <FinActivity>().ToList(); return(result); })(); //var activitiesToMap = activityMaps.GroupBy(m => m.FromActivity).Select(k => k.Key); #endregion DeleteAutoGenLedgerItems(); #region Process via ORM var ormActivityMaps = activityMaps.Where(x => x.Algorithm == FinMapAlgorithmType.ORM); var bsJournalHelper = new BankStmtActivityOrmJournalHelper(objSpace, paramObj); bsJournalHelper.Process(accountMaps, ormActivityMaps); var cfJournalHelper = new CashFlowActivityOrmJournalHelper(objSpace, paramObj); cfJournalHelper.Process(accountMaps, ormActivityMaps); // commit to datastore (required for SQL algorithm which creates account gen ledgers) objSpace.Session.CommitTransaction(); #endregion #region Process via SQL var sqlActivityMaps = activityMaps.Where(x => x.Algorithm == FinMapAlgorithmType.SQL); var bankStmtActivitySqlJnlr = new BankStmtActivitySqlJournalHelper(objSpace, paramObj); bankStmtActivitySqlJnlr.Process(sqlActivityMaps); var cashFlowActivitySqlJnlr = new CashFlowActivitySqlJournalHelper(objSpace, paramObj); cashFlowActivitySqlJnlr.Process(sqlActivityMaps); var unpostedSqlJnlr = new GenLedgerUnpostedCreator(objSpace, paramObj); unpostedSqlJnlr.Process(); var accountSqlJnlr = new AccountSqlJournalHelper(objSpace, paramObj); accountSqlJnlr.Process(); #endregion }