private AttributeInstance FindAttributeInstanceInScope(string attributeName) { AttributeInstance attributeInstance = null; Flow scope = this.Flow; var attributeRepository = ServiceLocator.Current.GetInstance <IRepository <AttributeInstance> >(); while (attributeInstance == null) { var query = from a in attributeRepository where a.Scope.Id == scope.Id && a.AttributeName == attributeName select a; attributeInstance = query.SingleOrDefault(); if (attributeInstance == null) { if (!scope.IsRootFlow()) { scope = scope.Parent; } else { //throw new RuntimeException( "couldn't find attribute-instance '" + attributeName + "' in scope of flow '" + this.flow + "'" ); // log a warning message (indicate that attribute supplied is not defined in attribute-instance in db) Log.Warning("couldn't find attribute-instance '" + attributeName + "' in scope of flow '" + this.Flow + "'"); break; } } } return(attributeInstance); }
private void setAttribute(string attributeName, object valueObject) { AttributeInstance attributeInstance = this.Flow.AttributeInstances.SingleOrDefault(s => s.AttributeName == attributeName); if (attributeInstance != null) { attributeInstance.SetValue(valueObject); } }
public object GetAttribute(string name) { AttributeInstance attributeInstance = FindAttributeInstanceInScope(name); if (attributeInstance != null) { return(attributeInstance.GetValue()); } return(null); }
private void createAttributeInstances(ICollection <AttributeDef> attributes) { this.AttributeInstances = new HashSet <AttributeInstance>(); IEnumerator iter = attributes.GetEnumerator(); foreach (var attribute in attributes) { String attributeName = attribute.Name; AttributeInstance attributeInstance = new AttributeInstance(attribute, this); attributeInstance.ValueText = attribute.InitialValue; this.AttributeInstances.Add(attributeInstance); } }