public static SqlQueryAttribute BuildAttribute(SqlQuery query, QueryAttributeDef attrDef) { if (query == null) { throw new ArgumentNullException("query"); } if (attrDef == null) { throw new ArgumentNullException("attrDef"); } var single = attrDef as QuerySingleAttributeDef; if (single != null) { var source = query.FindSource(single.Attribute.Source); return(single.Attribute.AttributeId != Guid.Empty ? query.GetAttribute(source, single.Attribute.AttributeId) : query.GetAttribute(source, single.Attribute.AttributeName)); } var exp = attrDef as QueryExpAttributeDef; if (exp != null) { var attrRefs = new List <SqlQuerySourceAttributeRef>(); foreach (var attribute in exp.Attributes) { var source = query.FindSource(attribute.Source); var attr = attribute.AttributeId != Guid.Empty ? source.GetAttribute(attribute.AttributeId) : source.GetAttribute(attribute.AttributeName); var attrRef = new SqlQuerySourceAttributeRef(source, attr); attrRefs.Add(attrRef); } return(query.AddAttribute(attrRefs, exp.Expression)); } return(null); }
public QueryAttributeDefHelper(QueryAttributeDef def) { Def = def; }