public BlogSettingsDetector(IBlogSettingsDetectionContext context) { // save the context _context = context; _homepageAccessor = new LazyHomepageDownloader(_context.HomepageUrl, new HttpRequestHandler(ExecuteHttpRequest)); }
public virtual void DetectSettings(IBlogSettingsDetectionContext context, BlogSettingsDetector detector) { if (detector.IncludeOptionOverrides) { if (detector.IncludeCategoryScheme) { Debug.Assert(!detector.UseManifestCache, "This code will not run correctly under the manifest cache, due to option overrides not being set"); IDictionary optionOverrides = context.OptionOverrides; if (optionOverrides == null) { optionOverrides = new Hashtable(); } bool hasNewCategories = optionOverrides.Contains(BlogClientOptions.SUPPORTS_NEW_CATEGORIES); bool hasScheme = optionOverrides.Contains(BlogClientOptions.CATEGORY_SCHEME); if (!hasNewCategories || !hasScheme) { string scheme; bool supportsNewCategories; GetCategoryInfo(context.HostBlogId, optionOverrides[BlogClientOptions.CATEGORY_SCHEME] as string, // may be null out scheme, out supportsNewCategories); if (scheme == null) { // no supported scheme was found or provided optionOverrides[BlogClientOptions.SUPPORTS_CATEGORIES] = false.ToString(); } else { if (!optionOverrides.Contains(BlogClientOptions.SUPPORTS_NEW_CATEGORIES)) { optionOverrides.Add(BlogClientOptions.SUPPORTS_NEW_CATEGORIES, supportsNewCategories.ToString()); } if (!optionOverrides.Contains(BlogClientOptions.CATEGORY_SCHEME)) { optionOverrides.Add(BlogClientOptions.CATEGORY_SCHEME, scheme); } } context.OptionOverrides = optionOverrides; } } // GetFeaturesXml(context.HostBlogId); } }
public virtual void DetectSettings(IBlogSettingsDetectionContext context, BlogSettingsDetector detector) { if (detector.IncludeOptionOverrides) { if (detector.IncludeCategoryScheme) { Debug.Assert(!detector.UseManifestCache, "This code will not run correctly under the manifest cache, due to option overrides not being set"); IDictionary optionOverrides = context.OptionOverrides; if (optionOverrides == null) optionOverrides = new Hashtable(); bool hasNewCategories = optionOverrides.Contains(BlogClientOptions.SUPPORTS_NEW_CATEGORIES); bool hasScheme = optionOverrides.Contains(BlogClientOptions.CATEGORY_SCHEME); if (!hasNewCategories || !hasScheme) { string scheme; bool supportsNewCategories; GetCategoryInfo(context.HostBlogId, optionOverrides[BlogClientOptions.CATEGORY_SCHEME] as string, // may be null out scheme, out supportsNewCategories); if (scheme == null) { // no supported scheme was found or provided optionOverrides[BlogClientOptions.SUPPORTS_CATEGORIES] = false.ToString(); } else { if (!optionOverrides.Contains(BlogClientOptions.SUPPORTS_NEW_CATEGORIES)) optionOverrides.Add(BlogClientOptions.SUPPORTS_NEW_CATEGORIES, supportsNewCategories.ToString()); if (!optionOverrides.Contains(BlogClientOptions.CATEGORY_SCHEME)) optionOverrides.Add(BlogClientOptions.CATEGORY_SCHEME, scheme); } context.OptionOverrides = optionOverrides; } } // GetFeaturesXml(context.HostBlogId); } }
public void ApplyUpdates(IBlogSettingsDetectionContext settingsContext) { using (MetaLock(APPLY_UPDATES_LOCK)) { if (BlogSettings.BlogIdIsValid(_id)) { if (settingsContext.ManifestDownloadInfo != null) ManifestDownloadInfo = settingsContext.ManifestDownloadInfo; if (settingsContext.ClientType != null) ClientType = settingsContext.ClientType; if (settingsContext.FavIcon != null) FavIcon = settingsContext.FavIcon; if (settingsContext.Image != null) Image = settingsContext.Image; if (settingsContext.WatermarkImage != null) WatermarkImage = settingsContext.WatermarkImage; if (settingsContext.Categories != null) Categories = settingsContext.Categories; if (settingsContext.Keywords != null) Keywords = settingsContext.Keywords; if (settingsContext.ButtonDescriptions != null) ButtonDescriptions = settingsContext.ButtonDescriptions; if (settingsContext.OptionOverrides != null) OptionOverrides = settingsContext.OptionOverrides; if (settingsContext.HomePageOverrides != null) HomePageOverrides = settingsContext.HomePageOverrides; } else { throw new InvalidOperationException("Attempted to apply updates to invalid blog-id"); } } }
public void ApplyUpdates(IBlogSettingsDetectionContext settingsContext) { using (MetaLock(APPLY_UPDATES_LOCK)) { if (BlogSettings.BlogIdIsValid(_id)) { if (settingsContext.ManifestDownloadInfo != null) { ManifestDownloadInfo = settingsContext.ManifestDownloadInfo; } if (settingsContext.ClientType != null) { ClientType = settingsContext.ClientType; } if (settingsContext.FavIcon != null) { FavIcon = settingsContext.FavIcon; } if (settingsContext.Image != null) { Image = settingsContext.Image; } if (settingsContext.WatermarkImage != null) { WatermarkImage = settingsContext.WatermarkImage; } if (settingsContext.Categories != null) { Categories = settingsContext.Categories; } if (settingsContext.Keywords != null) { Keywords = settingsContext.Keywords; } if (settingsContext.ButtonDescriptions != null) { ButtonDescriptions = settingsContext.ButtonDescriptions; } if (settingsContext.OptionOverrides != null) { OptionOverrides = settingsContext.OptionOverrides; } if (settingsContext.HomePageOverrides != null) { HomePageOverrides = settingsContext.HomePageOverrides; } } else { throw new InvalidOperationException("Attempted to apply updates to invalid blog-id"); } } }