private StringDictionary GetSiteProperties(Item item) { Assert.ArgumentNotNull(item, "item"); Item startItem = item.Children.FirstOrDefault(i => i.TemplateID.Equals(Templates.MicrositeRoot.Fields.SiteHome) || i.Template.BaseTemplates.Any(t => t.ID.Equals(Templates.MicrositeRoot.Fields.SiteHome))); if (startItem == null) return null; var properties = new StringDictionary { {Constants.SiteParameters.SiteName, item.Name.ToSiteName()}, {Constants.SiteParameters.RootPath, item.Paths.FullPath}, {Constants.SiteParameters.StartItem, startItem.Name }, {Constants.SiteParameters.Language, item[Templates.MicrositeRoot.Fields.SiteLanguage] }, {Constants.SiteParameters.Database, item[Templates.MicrositeRoot.Fields.SiteDatabase] }, {Constants.SiteParameters.HostName, item[Templates.MicrositeRoot.Fields.SiteHostName] }, {Constants.SiteParameters.Domain, item[Templates.MicrositeRoot.Fields.SiteDomain] } }; NameValueListField siteParametersField = item.Fields[Templates.MicrositeRoot.Fields.SiteParameters]; foreach (string key in siteParametersField.NameValues) { if (!properties.ContainsKey(key)) properties.Add(key, HttpUtility.UrlDecode(siteParametersField.NameValues[key])); } return properties; }
private bool AssertMandatoryProperties(StringDictionary properties) { return properties.ContainsKeyWithValue(Constants.SiteParameters.SiteName) && properties.ContainsKeyWithValue(Constants.SiteParameters.RootPath) && properties.ContainsKeyWithValue(Constants.SiteParameters.HostName) && properties.ContainsKeyWithValue(Constants.SiteParameters.Language) && properties.ContainsKeyWithValue(Constants.SiteParameters.StartItem) && properties.ContainsKeyWithValue(Constants.SiteParameters.Domain) && properties.ContainsKeyWithValue(Constants.SiteParameters.Database); }