public BlogSettingsDetector(IBlogSettingsDetectionContext context)
        {
            // save the context
            _context = context;

            _homepageAccessor = new LazyHomepageDownloader(_context.HomepageUrl, new HttpRequestHandler(ExecuteHttpRequest));
        }
Beispiel #2
0
        public BlogSettingsDetector(IBlogSettingsDetectionContext context)
        {
            // save the context
            _context = context;

            _homepageAccessor = new LazyHomepageDownloader(_context.HomepageUrl, new HttpRequestHandler(ExecuteHttpRequest));
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #5
0
        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");
                }
            }
        }