public override void Make(IConfigurationType config, IExpressionsManager manager) { if (null == manager) { throw new ArgumentNullException("manager"); } if (null == config) { throw new ArgumentNullException("config"); } IConfigurationElement element = config as IConfigurationElement; if (null == element) { throw new ArgumentException("config must be an IConfigurationElement"); } if (element.Elements.ContainsKey("operands")) { foreach (IConfigurationElement operandElement in element.GetElementReference("operands").Elements.Values) { string type = operandElement.GetAttributeReference("type").Value.ToString(); IToken token = manager.Token(type); if (null == token) { throw new InvalidOperationException(string.Format("Cannot make the type '{0}'", type)); } token.Make(operandElement, manager); this.Operands.Add(token); } } }
public static IExpression Expression(this IExpressionsManager manager, XElement element) { Configuration config = new Configuration(); IConfigurationElement configElement = config.AddSection("expression extensions").AddElement("expression"); configElement.ReadXml(element.CreateReader()); IExpression expression = manager.Token(configElement.GetAttributeReference("type").Value.ToString()) as IExpression; if (null != expression) { expression.Make(configElement, manager); } return(expression); }
private TransitPoint CreateTransitPoint(WebPartManager manager, IConfigurationElement element, IExpressionsManager expressionsManager) { bool valid = false; TransitPoint transitPoint = new TransitPoint(); if (element.Attributes.ContainsKey("id")) { valid = true; transitPoint.Chronicler = (ReflectionServices.FindControlEx(element.GetAttributeReference("id").Value.ToString(), manager) as IChronicler); } if (element.Attributes.ContainsKey("member")) { transitPoint.Member = element.GetAttributeReference("member").Value.ToString(); } if (element.Attributes.ContainsKey("value")) { valid = true; transitPoint.Value = element.GetAttributeReference("value").Value; } if (element.Elements.ContainsKey("expression")) { valid = true; IConfigurationElement expressionElement = element.GetElementReference("expression"); IExpression expression = expressionsManager.Token(expressionElement.GetAttributeReference("type").Value.ToString()) as IExpression; if (null == expression) { throw new InvalidOperationException("Token is not an IExpression"); } expression.Make(expressionElement, expressionsManager); transitPoint.Expression = expression; } if (!valid) { transitPoint = null; } return(transitPoint); }
private TransitPoint CreateTransitPoint(WebPartManager manager, IConfigurationElement element, IExpressionsManager expressionsManager) { bool valid = false; TransitPoint transitPoint = new TransitPoint(); if (element.Attributes.ContainsKey("id")) { valid = true; transitPoint.Chronicler = (ReflectionServices.FindControlEx(element.GetAttributeReference("id").Value.ToString(), manager) as IChronicler); } if (element.Attributes.ContainsKey("member")) { transitPoint.Member = element.GetAttributeReference("member").Value.ToString(); } if (element.Attributes.ContainsKey("value")) { valid = true; transitPoint.Value = element.GetAttributeReference("value").Value; } if (element.Elements.ContainsKey("expression")) { valid = true; IConfigurationElement expressionElement = element.GetElementReference("expression"); IExpression expression = expressionsManager.Token(expressionElement.GetAttributeReference("type").Value.ToString()) as IExpression; if (null == expression) throw new InvalidOperationException("Token is not an IExpression"); expression.Make(expressionElement, expressionsManager); transitPoint.Expression = expression; } if (!valid) transitPoint = null; return transitPoint; }
public override void Make(IConfigurationType config, IExpressionsManager manager) { if (null == manager) throw new ArgumentNullException("manager"); if (null == config)throw new ArgumentNullException("config"); IConfigurationElement element = config as IConfigurationElement; if (null == element) throw new ArgumentException("config must be an IConfigurationElement"); if (element.Elements.ContainsKey("operands")) { foreach (IConfigurationElement operandElement in element.GetElementReference("operands").Elements.Values) { string type = operandElement.GetAttributeReference("type").Value.ToString(); IToken token = manager.Token(type); if (null == token) throw new InvalidOperationException(string.Format("Cannot make the type '{0}'", type)); token.Make(operandElement, manager); this.Operands.Add(token); } } }