private SqlCommand BuildCommand(IConfigurationElement commandElement, IBinder binder, WebPartManager manager) { SqlCommand command = new SqlCommand(); foreach (IConfigurationElementAttribute attribute in commandElement.Attributes.Values) { ReflectionServices.SetValue(command, attribute.ConfigKey, attribute.Value); } IBindingItemsCollection bindingParams = binder.NewBindingItemCollectionInstance(); binder.BindingSet.Add(commandElement.ConfigKey, bindingParams); foreach (IConfigurationElement parameterElement in commandElement.Elements.Values) { SqlParameter parameter = new SqlParameter(); foreach (IConfigurationElementAttribute parameterAttribute in parameterElement.Attributes.Values) { if ("bind" == parameterAttribute.ConfigKey) { string bindstring = parameterAttribute.Value.ToString(); bool isOutput = parameterElement.Attributes.ContainsKey("Direction") && ("Output" == parameterElement.GetAttributeReference("Direction").Value.ToString() || "InputOutput" == parameterElement.GetAttributeReference("Direction").Value.ToString()); if (bindstring.Contains(".")) { string sourcestring = bindstring.Substring(0, bindstring.IndexOf(".")); IBindingItem bindingItem = binder.NewBindingItemInstance(); if (!isOutput) { bindingItem.Source = manager.FindControl(sourcestring); bindingItem.SourceProperty = bindstring.Substring(sourcestring.Length + 1); bindingItem.Target = parameter; bindingItem.TargetProperty = "Value"; } else { bindingItem.Target = manager.FindControl(sourcestring); bindingItem.TargetProperty = bindstring.Substring(sourcestring.Length + 1); bindingItem.Source = parameter; bindingItem.SourceProperty = "Value"; } bindingParams.Add(bindingItem); } } else { ReflectionServices.SetValue(parameter, parameterAttribute.ConfigKey, parameterAttribute.Value); } } if (null == parameter.Value) { parameter.Value = DBNull.Value; } command.Parameters.Add(parameter); } return(command); }
public IResult Bind(IBindingItemsCollection bindingItemsCollection) { if (null == bindingItemsCollection) { throw new ArgumentNullException("bindingItemsCollection"); } BindingResult result = new BindingResult(); foreach (IBindingItem item in bindingItemsCollection) { result.Concatenate(this.Bind(item)); } return(result); }
public BindingItemsCollection(IBindingItemsCollection collection) : base(collection) { }
public IResult Bind(IBindingItemsCollection bindingItemsCollection) { if (null == bindingItemsCollection) { throw new ArgumentNullException("bindingItemsCollection"); } BindingResult result = new BindingResult(); foreach (IBindingItem item in bindingItemsCollection) { result.Concatenate(this.Bind(item)); } return result; }