public static bool ConditionHasSource(ReportConditionItemDef c, Guid sourceId) { var expCondition = c as ReportExpConditionDef; if (expCondition != null) { if (expCondition.Conditions != null) { expCondition.Conditions.RemoveAll(i => ConditionHasSource(i, sourceId)); } else { return(true); } return(false); } return ((c is ReportConditionDef && ((ReportConditionDef)c).LeftAttribute != null && ((ReportConditionDef)c).LeftAttribute.SourceId == sourceId) || (c is ReportConditionDef && ((ReportConditionDef)c).RightPart is ReportConditionRightAttributeDef && ((ReportConditionRightAttributeDef)((ReportConditionDef)c).RightPart).Attribute != null && ((ReportConditionRightAttributeDef)((ReportConditionDef)c).RightPart).Attribute.SourceId == sourceId)); }
private static ReportConditionItemDef FindConditionById(ReportConditionItemDef condition, Guid conditionId) { if (condition.Id == conditionId) { return(condition); } var exp = condition as ReportExpConditionDef; if (exp != null && exp.Conditions != null) { return(exp.Conditions.Select(c => FindConditionById(c, conditionId)).FirstOrDefault(c => c != null)); } return(null); }