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);
        }
Exemplo n.º 2
0
Arquivo: Binder.cs Projeto: t1b1c/lwas
        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);
        }
Exemplo n.º 3
0
 public BindingItemsCollection(IBindingItemsCollection collection) : base(collection)
 {
 }
Exemplo n.º 4
0
Arquivo: Binder.cs Projeto: t1b1c/lwas
 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;
 }