private void ApplyJoins(SerializableQuery sourceQuery, IEnumerable <Join> joins) { sourceQuery.Joins = new List <SerializableJoin>(); foreach (var joinItem in joins) { var serializedJoin = new SerializableJoin(); ApplyJoinCondition(serializedJoin, joinItem.Condition); ApplySourceExpressions(serializedJoin, joinItem.SourceExpression); sourceQuery.Joins.Add(serializedJoin); } }
private void ApplyJoinCondition(SerializableJoin join, QueryCondition sourceCondition) { join.Conditions = new List <SerializableCondition>(); foreach (QueryCondition conditionItem in sourceCondition) { var condition = new SerializableCondition() { ConditionType = conditionItem.ConditionType, IsNot = conditionItem.IsNot, LogicalOperation = conditionItem.LogicalOperation }; condition.LeftExpression = MapLeftExpression(conditionItem.LeftExpression); condition.RightExpressions = MapRightExpression(conditionItem.RightExpressions); join.Conditions.Add(condition); } }