private void ChangeVirtualDirectoryProperties(WebVirtualDirectory vdir, ApplicationWebSetting[] settings) { if (settings == null) return; // get type properties Type vdirType = vdir.GetType(); foreach (ApplicationWebSetting setting in settings) { PropertyInfo prop = vdirType.GetProperty(setting.Name, BindingFlags.Public | BindingFlags.Instance); if (prop != null) { prop.SetValue(vdir, ObjectUtils.Cast(setting.Value, prop.PropertyType), null); } } }
private static ApplicationInfo CreateApplicationInfoFromXml(string appFolder, XmlNode nodeApp) { ApplicationInfo app = new ApplicationInfo(); // category name app.CategoryName = GetNodeValue(nodeApp, "category", ""); // attributes app.Id = nodeApp.Attributes["id"].Value; app.Codebase = nodeApp.Attributes["codebase"].Value; app.SettingsControl = nodeApp.Attributes["settingsControl"].Value; app.Folder = appFolder; // child nodes app.Name = GetNodeValue(nodeApp, "name", ""); app.ShortDescription = GetNodeValue(nodeApp, "shortDescription", ""); app.FullDescription = GetNodeValue(nodeApp, "fullDescription", ""); app.Logo = GetNodeValue(nodeApp, "logo", ""); app.Version = GetNodeValue(nodeApp, "version", ""); app.Size = Int32.Parse(GetNodeValue(nodeApp, "size", "0")); app.HomeSite = GetNodeValue(nodeApp, "homeSite", ""); app.SupportSite = GetNodeValue(nodeApp, "supportSite", ""); app.DocsSite = GetNodeValue(nodeApp, "docSite", ""); app.Manufacturer = GetNodeValue(nodeApp, "manufacturer", ""); app.License = GetNodeValue(nodeApp, "license", ""); // process codebase path app.Codebase = Path.Combine(appFolder, app.Codebase); // web settings List<ApplicationWebSetting> settings = new List<ApplicationWebSetting>(); XmlNodeList nodesWebSettings = nodeApp.SelectNodes("webSettings/add"); foreach (XmlNode nodeSetting in nodesWebSettings) { ApplicationWebSetting setting = new ApplicationWebSetting(); setting.Name = nodeSetting.Attributes["name"].Value; setting.Value = nodeSetting.Attributes["value"].Value; settings.Add(setting); } app.WebSettings = settings.ToArray(); // requirements List<ApplicationRequirement> requirements = new List<ApplicationRequirement>(); XmlNodeList nodesRequirements = nodeApp.SelectNodes("requirements/add"); foreach (XmlNode nodesRequirement in nodesRequirements) { ApplicationRequirement req = new ApplicationRequirement(); if (nodesRequirement.Attributes["group"] != null) req.Groups = nodesRequirement.Attributes["group"].Value.Split('|'); if (nodesRequirement.Attributes["quota"] != null) req.Quotas = nodesRequirement.Attributes["quota"].Value.Split('|'); req.Display = true; if (nodesRequirement.Attributes["display"] != null) req.Display = Utils.ParseBool(nodesRequirement.Attributes["display"].Value, true); requirements.Add(req); } app.Requirements = requirements.ToArray(); return app; }
private static ApplicationInfo CreateApplicationInfoFromXml(string appFolder, XmlNode nodeApp) { ApplicationInfo app = new ApplicationInfo(); // category name app.CategoryName = GetNodeValue(nodeApp, "category", ""); // attributes app.Id = nodeApp.Attributes["id"].Value; app.Codebase = nodeApp.Attributes["codebase"].Value; app.SettingsControl = nodeApp.Attributes["settingsControl"].Value; app.Folder = appFolder; // child nodes app.Name = GetNodeValue(nodeApp, "name", ""); app.ShortDescription = GetNodeValue(nodeApp, "shortDescription", ""); app.FullDescription = GetNodeValue(nodeApp, "fullDescription", ""); app.Logo = GetNodeValue(nodeApp, "logo", ""); app.Version = GetNodeValue(nodeApp, "version", ""); app.Size = Int32.Parse(GetNodeValue(nodeApp, "size", "0")); app.HomeSite = GetNodeValue(nodeApp, "homeSite", ""); app.SupportSite = GetNodeValue(nodeApp, "supportSite", ""); app.DocsSite = GetNodeValue(nodeApp, "docSite", ""); app.Manufacturer = GetNodeValue(nodeApp, "manufacturer", ""); app.License = GetNodeValue(nodeApp, "license", ""); // process codebase path app.Codebase = Path.Combine(appFolder, app.Codebase); // web settings List <ApplicationWebSetting> settings = new List <ApplicationWebSetting>(); XmlNodeList nodesWebSettings = nodeApp.SelectNodes("webSettings/add"); foreach (XmlNode nodeSetting in nodesWebSettings) { ApplicationWebSetting setting = new ApplicationWebSetting(); setting.Name = nodeSetting.Attributes["name"].Value; setting.Value = nodeSetting.Attributes["value"].Value; settings.Add(setting); } app.WebSettings = settings.ToArray(); // requirements List <ApplicationRequirement> requirements = new List <ApplicationRequirement>(); XmlNodeList nodesRequirements = nodeApp.SelectNodes("requirements/add"); foreach (XmlNode nodesRequirement in nodesRequirements) { ApplicationRequirement req = new ApplicationRequirement(); if (nodesRequirement.Attributes["group"] != null) { req.Groups = nodesRequirement.Attributes["group"].Value.Split('|'); } if (nodesRequirement.Attributes["quota"] != null) { req.Quotas = nodesRequirement.Attributes["quota"].Value.Split('|'); } req.Display = true; if (nodesRequirement.Attributes["display"] != null) { req.Display = Utils.ParseBool(nodesRequirement.Attributes["display"].Value, true); } requirements.Add(req); } app.Requirements = requirements.ToArray(); return(app); }