public ServiceUpdateSettingsDetectionContext(string blogId) { using (BlogSettings settings = BlogSettings.ForBlogId(blogId)) { _blogId = blogId; _homepageUrl = settings.HomepageUrl; _providerId = settings.ProviderId; _manifestDownloadInfo = settings.ManifestDownloadInfo; _hostBlogId = settings.HostBlogId; _postApiUrl = settings.PostApiUrl; _clientType = settings.ClientType; _userOptionOverrides = settings.UserOptionOverrides; _homepageOptionOverrides = settings.HomePageOverrides; _initialCategoryScheme = settings.OptionOverrides != null ? settings.OptionOverrides[BlogClientOptions.CATEGORY_SCHEME] as string : null; BlogCredentialsHelper.Copy(settings.Credentials, _credentials); using (Blog blog = new Blog(settings)) _blogSupportsCategories = blog.ClientOptions.SupportsCategories; _initialBlogSettingsContents = GetBlogSettingsContents(settings); _initialCategoriesContents = GetCategoriesContents(settings.Categories); } }
public bool IsDirty(TemporaryBlogSettings settings) { return (!UrlHelper.UrlsAreEqual(HomepageUrl, settings.HomepageUrl) || !BlogCredentialsHelper.CredentialsAreEqual(Credentials, settings.Credentials)); }
public void CopyFrom(TemporaryBlogSettings sourceSettings) { // simple members _id = sourceSettings._id; _switchToWeblog = sourceSettings._switchToWeblog; _isNewWeblog = sourceSettings._isNewWeblog; _savePassword = sourceSettings._savePassword; _isSpacesBlog = sourceSettings._isSpacesBlog; _isSharePointBlog = sourceSettings._isSharePointBlog; _hostBlogId = sourceSettings._hostBlogId; _blogName = sourceSettings._blogName; _homePageUrl = sourceSettings._homePageUrl; _manifestDownloadInfo = sourceSettings._manifestDownloadInfo; _providerId = sourceSettings._providerId; _serviceName = sourceSettings._serviceName; _clientType = sourceSettings._clientType; _postApiUrl = sourceSettings._postApiUrl; _lastPublishFailed = sourceSettings._lastPublishFailed; _fileUploadSupport = sourceSettings._fileUploadSupport; _instrumentationOptIn = sourceSettings._instrumentationOptIn; if (sourceSettings._availableImageEndpoints == null) { _availableImageEndpoints = null; } else { // Good thing BlogInfo is immutable! _availableImageEndpoints = (BlogInfo[])sourceSettings._availableImageEndpoints.Clone(); } // credentials BlogCredentialsHelper.Copy(sourceSettings._credentials, _credentials); // template files _templateFiles = new BlogEditingTemplateFile[sourceSettings._templateFiles.Length]; for (int i = 0; i < sourceSettings._templateFiles.Length; i++) { BlogEditingTemplateFile sourceFile = sourceSettings._templateFiles[i]; _templateFiles[i] = new BlogEditingTemplateFile(sourceFile.TemplateType, sourceFile.TemplateFile); } // option overrides if (sourceSettings._optionOverrides != null) { _optionOverrides.Clear(); foreach (DictionaryEntry entry in sourceSettings._optionOverrides) { _optionOverrides.Add(entry.Key, entry.Value); } } // user option overrides if (sourceSettings._userOptionOverrides != null) { _userOptionOverrides.Clear(); foreach (DictionaryEntry entry in sourceSettings._userOptionOverrides) { _userOptionOverrides.Add(entry.Key, entry.Value); } } // homepage overrides if (sourceSettings._homepageOptionOverrides != null) { _homepageOptionOverrides.Clear(); foreach (DictionaryEntry entry in sourceSettings._homepageOptionOverrides) { _homepageOptionOverrides.Add(entry.Key, entry.Value); } } // categories if (sourceSettings._categories != null) { _categories = new BlogPostCategory[sourceSettings._categories.Length]; for (int i = 0; i < sourceSettings._categories.Length; i++) { BlogPostCategory sourceCategory = sourceSettings._categories[i]; _categories[i] = sourceCategory.Clone() as BlogPostCategory; } } else { _categories = null; } if (sourceSettings._keywords != null) { _keywords = new BlogPostKeyword[sourceSettings._keywords.Length]; for (int i = 0; i < sourceSettings._keywords.Length; i++) { BlogPostKeyword sourceKeyword = sourceSettings._keywords[i]; _keywords[i] = sourceKeyword.Clone() as BlogPostKeyword; } } else { _keywords = null; } // authors and pages _authors = sourceSettings._authors.Clone() as AuthorInfo[]; _pages = sourceSettings._pages.Clone() as PageInfo[]; // buttons if (sourceSettings._buttonDescriptions != null) { _buttonDescriptions = new BlogProviderButtonDescription[sourceSettings._buttonDescriptions.Length]; for (int i = 0; i < sourceSettings._buttonDescriptions.Length; i++) { _buttonDescriptions[i] = sourceSettings._buttonDescriptions[i].Clone() as BlogProviderButtonDescription; } } else { _buttonDescriptions = null; } // favicon _favIcon = sourceSettings._favIcon; // images _image = sourceSettings._image; _watermarkImage = sourceSettings._watermarkImage; // host blogs _hostBlogs = new BlogInfo[sourceSettings._hostBlogs.Length]; for (int i = 0; i < sourceSettings._hostBlogs.Length; i++) { BlogInfo sourceBlog = sourceSettings._hostBlogs[i]; _hostBlogs[i] = new BlogInfo(sourceBlog.Id, sourceBlog.Name, sourceBlog.HomepageUrl); } // file upload settings _fileUploadSettings = sourceSettings._fileUploadSettings.Clone() as TemporaryFileUploadSettings; _pluginSettings = new SettingsPersisterHelper(new MemorySettingsPersister()); _pluginSettings.CopyFrom(sourceSettings._pluginSettings, true, true); }