/// <summary>
 ///   Retrieves an existing  object from the data store.
 /// </summary>
 /// <param name = "key">Parameter identifier.</param>
 public ParameterInfo GetParameter(ParameterInfo.UniqueKey key)
 {
     ParameterInfo objParam;
     using (var objReader = DataProvider.Instance().ExecuteReader("Xml_Parameter_Get", key.Id))
     {
         objParam = objReader.Read() ? FillParameterInfo(objReader) : new ParameterInfo();
     }
     return objParam;
 }
        protected void GrdParams_UpdateCommand(object source, DataGridCommandEventArgs e)
        {
            try
            {
                // init vars
                var objParam = new ParameterInfo();
                // set values
                if (e.Item.ItemIndex > -1)
                    objParam.Id = Convert.ToInt32(grdParams.DataKeys[e.Item.ItemIndex]);
                objParam.ModuleId = ModuleId;
                objParam.Name = ((TextBox) e.Item.FindControl(ControlNames.ParameterName)).Text;
                objParam.Type = ((DropDownList) e.Item.FindControl(ControlNames.ParameterType)).SelectedValue;
                if (objParam.IsArgumentRequired() || (SupportsFallbackValues && objParam.SupportsFallbackValue()))
                    objParam.TypeArgument = ((TextBox) e.Item.FindControl(ControlNames.ParameterArgument)).Text;
                objParam.IsValueRequired =
                    ((CheckBox) e.Item.FindControl(ControlNames.ParameterIsValueRequired)).Checked;
                // add/update param
                if (objParam.IsValidDefinition)
                {
                    var objController = new ParameterController(Purpose);
                    if (objParam.IsNew)
                    {
                        objController.AddParameter(objParam);
                    }
                    else
                    {
                        objController.UpdateParameter(objParam);
                    }

                    // clear edit row
                    grdParams.EditItemIndex = -1;
                    // bind data
                    BindParameters();
                }
                else
                {
                    ErrorMessagePlaceHolder.Controls.Add(
                        UI.Skins.Skin.GetModuleMessageControl(
                            Localization.GetString(LocaleKeys.ParameterInvalidHeader, LocalResourceFile),
                            Localization.GetString(LocaleKeys.ParameterInvalid, LocalResourceFile),
                            ModuleMessage.ModuleMessageType.RedError));
                }

                //Module failed to load
            }
            catch (Exception exc)
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
 /// <summary>
 ///   Creates a new  object in the data store.
 /// </summary>
 /// <param name = "parameter">Parameter object.</param>
 public void AddParameter(ParameterInfo parameter)
 {
     DataProvider.Instance().ExecuteNonQuery("Xml_Parameter_Add", parameter.ModuleId, _purpose, parameter.Name,
                                             parameter.Type, parameter.TypeArgument, parameter.IsValueRequired);
 }
 private static ParameterInfo FillParameterInfo(IDataReader objreader)
 {
     var objParam = new ParameterInfo
                        {
                            Id = objreader.GetInt32(0),
                            ModuleId = objreader.GetInt32(1),
                            Name = objreader.GetString(2),
                            Type = objreader.GetString(3)
                        };
     if (!objreader.IsDBNull(4))
         objParam.TypeArgument = objreader.GetString(4);
     objParam.IsValueRequired = objreader.GetBoolean(5);
     return objParam;
 }
 public static void ImportProviderSettings(int moduleId, XmlNode settingsNode, string providerName)
 {
     if ((settingsNode != null))
     {
         var pc = new ParameterController(providerName);
         foreach (var p in pc.GetParameters(moduleId))
         {
             pc.DeleteParameter(p.Key);
         }
         foreach (XmlNode node in settingsNode.SelectNodes(Portable.ParamElement))
         {
             if (node.Attributes == null) continue;
             var p = new ParameterInfo
                         {
                             ModuleId = moduleId,
                             Name = node.Attributes["name"].Value,
                             Type = node.Attributes[Portable.TypeAttribute].Value
                         };
             if (p.IsArgumentRequired())
                 p.TypeArgument = node.Attributes[Portable.ArgAttribute].Value;
             p.IsValueRequired = (node.Attributes[Portable.ValueRequiredAttribute] != null);
             pc.AddParameter(p);
         }
     }
 }
 /// <summary>
 ///   Removes an existing  object from the data store.
 /// </summary>
 /// <param name = "key">Parameter identifier.</param>
 public void DeleteParameter(ParameterInfo.UniqueKey key)
 {
     DataProvider.Instance().ExecuteNonQuery("Xml_Parameter_Delete", key.Id);
 }
 /// <summary>
 ///   Updates an existing  object in the data store.
 /// </summary>
 /// <param name = "parameter">Parameter object.</param>
 public void UpdateParameter(ParameterInfo parameter)
 {
     DataProvider.Instance().ExecuteNonQuery("Xml_Parameter_Update", parameter.Id, parameter.Name,
                                             parameter.Type, parameter.TypeArgument,
                                             parameter.IsValueRequired);
 }