Example #1
0
 public override XmlReader Load(int moduleId, int portalId, Hashtable settings)
 {
     var xmlsrc = settings[Setting.SourceUrl].DefaultIfNullOrEmpty();
     XmlReader responseReader = null;
     if (!string.IsNullOrEmpty(xmlsrc))
     {
         try
         {
             switch (Globals.GetURLType(xmlsrc))
             {
                 case TabType.Url:
                     {
                         var paramList = new ParameterController(_providerName).GetParameters(moduleId);
                         paramList.Encoding = GetQueryStringEncoding(settings[Setting.UrlEncoding].DefaultIfNullOrEmpty());
                         xmlsrc = new TokenReplace().ReplaceEnvironmentTokens(xmlsrc);
                         if (paramList.IsValid())
                         {
                             xmlsrc += (xmlsrc.IndexOf("?") == -1 ? "?" : "&") + paramList;
                             var useCache = bool.Parse(settings[Setting.EnableCache].DefaultIfNullOrEmpty(bool.FalseString));
                             var credential = new Credential(settings[Setting.SourceAccount].DefaultIfNullOrEmpty(), settings[Setting.SourcePassWord].DefaultIfNullOrEmpty());
                             responseReader = GetXmlContent(xmlsrc,credential , useCache);
                         }
                         else
                         {
                             responseReader = NoDataReader("Parameter");
                         }
                     }
                     break;
                 default:
                     responseReader = NoDataReader("Unsupported Url");
                     break;
             }
         }
         catch (SecurityException)
         {
             throw;
         }
         catch (Exception ex)
         {
             Exceptions.LogException(ex);
             responseReader = NoDataReader("Exception");
         }
     }
     return responseReader;
 }
        /// <summary>
        ///   Binds the <see cref = "ParameterInfo" /> settings.
        /// </summary>
        /// <param name = "showAddRow">Specifies whether an additional edit row should be displayed.</param>
        private void BindParameters(bool showAddRow = false)
        {
            var objController = new ParameterController(Purpose);
            var colParams = objController.GetParameters(ModuleId);
            _isStatic = colParams.IsStatic();

            // add new row
            if (showAddRow)
            {
                colParams.Add(new ParameterInfo());
                grdParams.EditItemIndex = colParams.Count - 1;
            }

            // apply data source
            grdParams.DataSource = colParams;
            grdParams.DataBind();
            grdParams.Visible = (colParams.Count > 0 || showAddRow);
            grdParams.Columns[2].Visible = grdParams.Visible && RequiredValuesNeeded;

            // bind settings
        }
        protected void GrdParams_DeleteCommand(object source, DataGridCommandEventArgs e)
        {
            try
            {
                // init vars
                var objController = new ParameterController(Purpose);
                var objParamKey = new ParameterInfo.UniqueKey
                                      {
                                          Id = Convert.ToInt32(grdParams.DataKeys[e.Item.ItemIndex])
                                      };

                // delete parameter
                objController.DeleteParameter(objParamKey);

                // reset edit row
                grdParams.EditItemIndex = -1;
                BindParameters();
                //Module failed to load
            }
            catch (Exception exc)
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
        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);
            }
        }
 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);
         }
     }
 }