コード例 #1
0
        public void ResetPostForNewBlog(IBlogClientOptions options)
        {
            Id            = String.Empty;
            DatePublished = DateTime.MinValue;

            // if the current blog doesn't support pages then force
            // the post to not be a page
            if (!options.SupportsPages)
            {
                IsPage = false;
            }

            // author and parent are tied to blog, reset them as well
            Author     = PostIdAndNameField.Empty;
            PageParent = PostIdAndNameField.Empty;

            ETag           = string.Empty;
            AtomRemotePost = null;

            // categories are tied to blog, reset them
            Categories    = null;
            NewCategories = null;

            // ping urls are tied to blog, reset them so they are sent again for a new blog
            UncommitPingUrls();
        }
コード例 #2
0
        public GoogleBloggerv3Client(Uri postApiUrl, IBlogCredentialsAccessor credentials)
            : base(credentials)
        {
            // configure client options
            BlogClientOptions clientOptions = new BlogClientOptions();

            clientOptions.SupportsCategories         = false;
            clientOptions.SupportsMultipleCategories = false;
            clientOptions.SupportsNewCategories      = false;
            clientOptions.SupportsCustomDate         = true;
            clientOptions.SupportsExcerpt            = false;
            clientOptions.SupportsSlug            = false;
            clientOptions.SupportsFileUpload      = true;
            clientOptions.SupportsKeywords        = true;
            clientOptions.SupportsGetKeywords     = true;
            clientOptions.SupportsPages           = true;
            clientOptions.SupportsExtendedEntries = true;
            _clientOptions = clientOptions;

            _nsMgr = new XmlNamespaceManager(new NameTable());
            _nsMgr.AddNamespace(atomNS.Prefix, atomNS.Uri);
            _nsMgr.AddNamespace(pubNS.Prefix, pubNS.Uri);
            _nsMgr.AddNamespace(AtomClient.xhtmlNS.Prefix, AtomClient.xhtmlNS.Uri);
            _nsMgr.AddNamespace(AtomClient.featuresNS.Prefix, AtomClient.featuresNS.Uri);
            _nsMgr.AddNamespace(AtomClient.mediaNS.Prefix, AtomClient.mediaNS.Uri);
            _nsMgr.AddNamespace(AtomClient.liveNS.Prefix, AtomClient.liveNS.Uri);
        }
コード例 #3
0
 public AtomMediaUploader(XmlNamespaceManager nsMgr, HttpRequestFilter requestFilter, string collectionUri, IBlogClientOptions options, XmlRestRequestHelper xmlRestRequestHelper)
 {
     this._nsMgr = nsMgr;
     this._requestFilter = requestFilter;
     this._collectionUri = collectionUri;
     this._options = options;
     this.xmlRestRequestHelper = xmlRestRequestHelper;
 }
コード例 #4
0
 private static Page ConvertToGoogleBloggerPage(BlogPost page, IBlogClientOptions clientOptions)
 {
     return(new Page()
     {
         Content = page.Contents,
         Published = GetDatePublishedOverride(page, clientOptions),
         Title = page.Title,
     });
 }
コード例 #5
0
ファイル: Blog.cs プロジェクト: edandersen/netwriter-olw-uwp
 public ContentFilterApplier(BlogPost blogPost, IBlogClientOptions clientOptions, ContentFilterMode filterMode)
 {
     _blogPost         = blogPost;
     _originalContents = _blogPost.Contents;
     if (_originalContents != null)
     {
         _blogPost.Contents = ApplyContentFilters(clientOptions.ContentFilter, _originalContents, filterMode);
     }
 }
コード例 #6
0
        public void OnBlogChanged(Blog newBlog)
        {
            _clientOptions = newBlog.ClientOptions;
            _targetBlog    = newBlog;

            controller.OnBlogChanged(newBlog);
            ((IBlogPostEditor)postPropertiesForm).OnBlogChanged(newBlog);

            ManageLayout();
        }
コード例 #7
0
        public void Initialize(IBlogPostEditingContext editorContext, IBlogClientOptions clientOptions)
        {
            _editorContext = editorContext;
            _clientOptions = clientOptions;

            controller.Initialize(editorContext, clientOptions);
            ((IBlogPostEditor)postPropertiesForm).Initialize(editorContext, clientOptions);

            ManageLayout();
        }
コード例 #8
0
        public void Initialize(IBlogPostEditingContext editingContext, IBlogClientOptions options)
        {
            PropertyType requiredType = editingContext.BlogPost.IsPage ? PropertyType.Page : PropertyType.Post;

            bool isCorrectType = (propertyType & requiredType) == requiredType;

            if (isCorrectType && populate != null)
            {
                populate(editingContext, options);
            }
        }
コード例 #9
0
        public static void ShowInNotepad(IBlogClientOptions options)
        {
            string clientOptionsFile = TempFileManager.Instance.CreateTempFile("BlogClientOptions.txt");

            using (StreamWriter stream = new StreamWriter(clientOptionsFile))
            {
                OptionStreamWriter writer = new OptionStreamWriter(stream);
                writer.Write(options);
            }
            Process.Start(clientOptionsFile);
        }
コード例 #10
0
        private static DateTime?GetDatePublishedOverride(BlogPost post, IBlogClientOptions clientOptions)
        {
            DateTime?datePublishedOverride = post.HasDatePublishedOverride ? post?.DatePublishedOverride : null;

            if (datePublishedOverride.HasValue && clientOptions.UseLocalTime)
            {
                datePublishedOverride = DateTimeHelper.UtcToLocal(datePublishedOverride.Value);
            }

            return(datePublishedOverride);
        }
コード例 #11
0
        public StaticSiteClient(Uri postApiUrl, IBlogCredentialsAccessor credentials)
            : base(credentials)
        {
            Config = StaticSiteConfig.LoadConfigFromCredentials(credentials);

            // Set the client options
            var options = new BlogClientOptions();

            ConfigureClientOptions(options);
            Options = options;
        }
コード例 #12
0
        public void Initialize(IBlogPostEditingContext editingContext, IBlogClientOptions clientOptions)
        {
            // this needs to happen before an editor is loaded, it is needed to know if
            // if the blog this band should show or not.
            bool firstTimeInitialization = _currentEditor == null;

            InitDefaultEditorForBlog();

            base.Initialize(editingContext, clientOptions, GetStyledHtml(), GetPreviewHtml(), true);

            commandSemanticHtml.SetAccountId(_currentBlog.Id, IsRTLTemplate, false);

            _postPropertyEditor.Initialize(editingContext, clientOptions);
        }
コード例 #13
0
        private static Post ConvertToGoogleBloggerPost(BlogPost post, IBlogClientOptions clientOptions)
        {
            var labels = post.Categories?.Select(x => x.Name).ToList();

            labels?.AddRange(post.NewCategories?.Select(x => x.Name) ?? new List <string>());

            return(new Post()
            {
                Content = post.Contents,
                Labels = labels ?? new List <string>(),
                Published = GetDatePublishedOverride(post, clientOptions),
                Title = post.Title,
            });
        }
コード例 #14
0
        public void UpdateControlVisibility(IBlogPostEditingContext editingContext, IBlogClientOptions options)
        {
            PropertyType requiredType = editingContext.BlogPost.IsPage ? PropertyType.Page : PropertyType.Post;

            bool isCorrectType = (propertyType & requiredType) == requiredType;
            bool visible       = isCorrectType && shouldShow(options);

            foreach (Control c in controls)
            {
                if (c != null)
                {
                    c.Visible = visible;
                }
            }
        }
コード例 #15
0
        void IBlogPostEditor.Initialize(IBlogPostEditingContext editingContext, IBlogClientOptions clientOptions)
        {
            // categories from blog
            CategoryContext.SetBlogCategories(_targetBlog.Categories);

            // pickup new categories from the blog-post
            CategoryContext.SetNewCategories(editingContext.BlogPost.NewCategories);

            // combine all post categories before settting
            ArrayList selectedCategories = new ArrayList();
            selectedCategories.AddRange(editingContext.BlogPost.NewCategories);
            selectedCategories.AddRange(editingContext.BlogPost.Categories);
            _lastSelectedCategories = new BlogPostCategory[0];
            CategoryContext.SelectedCategories = selectedCategories.ToArray(typeof(BlogPostCategory)) as BlogPostCategory[];

            toolTipCategories.SetToolTip(this, CategoryContext.FormattedCategoryList);
            _isDirty = false;
        }
コード例 #16
0
        public WeblogCapabilitiesForm(IBlogClientOptions clientOptions)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.buttonOK.Text = Res.Get(StringId.OKButtonText);
            this.columnHeaderCapability.Text = Res.Get(StringId.WeblogCapabilitiesCapability);
            this.columnHeaderValue.Text = Res.Get(StringId.WeblogCapabilitiesValue);
            this.labelCapabilities.Text = Res.Get(StringId.WeblogCapabilitiesCaption);
            this.Text = Res.Get(StringId.WeblogCapabilitiesTitle);

            // captions
            labelCapabilities.Text = String.Format(CultureInfo.CurrentCulture, labelCapabilities.Text, ApplicationEnvironment.ProductNameQualified);
            ListViewOptionWriter listViewOptionWriter = new ListViewOptionWriter(listViewCapabilities);
            listViewOptionWriter.Write(clientOptions);
        }
コード例 #17
0
        public static IBlogClient CreateClient(string clientType, string postApiUrl, IBlogCredentialsAccessor credentials, string providerId, IDictionary optionOverrides, IDictionary userOptionOverrides, IDictionary homepageOptionOverrides)
        {
            // create blog client reflecting the settings
            IBlogClient blogClient = CreateClient(clientType, postApiUrl, credentials);

            // if there is a provider associated with the client then use it to override options
            // as necessary for this provider
            IBlogProvider provider = BlogProviderManager.FindProvider(providerId);

            if (provider != null)
            {
                IBlogClientOptions providerOptions = provider.ConstructBlogOptions(blogClient.Options);
                blogClient.OverrideOptions(providerOptions);
            }

            if (homepageOptionOverrides != null)
            {
                OptionOverrideReader homepageOptionsReader = new OptionOverrideReader(homepageOptionOverrides);
                IBlogClientOptions   homepageOptions       = BlogClientOptions.ApplyOptionOverrides(new OptionReader(homepageOptionsReader.Read), blogClient.Options, true);
                blogClient.OverrideOptions(homepageOptions);
            }

            // if there are manifest overrides then apply them
            if (optionOverrides != null)
            {
                OptionOverrideReader manifestOptionsReader = new OptionOverrideReader(optionOverrides);
                IBlogClientOptions   manifestOptions       = BlogClientOptions.ApplyOptionOverrides(new OptionReader(manifestOptionsReader.Read), blogClient.Options, true);
                blogClient.OverrideOptions(manifestOptions);
            }

            // if there are user overrides then apply them
            if (userOptionOverrides != null)
            {
                OptionOverrideReader userOptionsReader = new OptionOverrideReader(userOptionOverrides);
                IBlogClientOptions   userOptions       = BlogClientOptions.ApplyOptionOverrides(new OptionReader(userOptionsReader.Read), blogClient.Options, true);
                blogClient.OverrideOptions(userOptions);
            }



            // return the blog client
            return(blogClient);
        }
コード例 #18
0
        void IBlogPostEditor.Initialize(IBlogPostEditingContext editingContext, IBlogClientOptions clientOptions)
        {
            // categories from blog
            CategoryContext.SetBlogCategories(_targetBlog.Categories);

            // pickup new categories from the blog-post
            CategoryContext.SetNewCategories(editingContext.BlogPost.NewCategories);

            // combine all post categories before settting
            ArrayList selectedCategories = new ArrayList();

            selectedCategories.AddRange(editingContext.BlogPost.NewCategories);
            selectedCategories.AddRange(editingContext.BlogPost.Categories);
            _lastSelectedCategories            = new BlogPostCategory[0];
            CategoryContext.SelectedCategories = selectedCategories.ToArray(typeof(BlogPostCategory)) as BlogPostCategory[];

            toolTipCategories.SetToolTip(this, CategoryContext.FormattedCategoryList);
            _isDirty = false;
        }
コード例 #19
0
        public WeblogCapabilitiesForm(IBlogClientOptions clientOptions)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.buttonOK.Text = Res.Get(StringId.OKButtonText);
            this.columnHeaderCapability.Text = Res.Get(StringId.WeblogCapabilitiesCapability);
            this.columnHeaderValue.Text      = Res.Get(StringId.WeblogCapabilitiesValue);
            this.labelCapabilities.Text      = Res.Get(StringId.WeblogCapabilitiesCaption);
            this.Text = Res.Get(StringId.WeblogCapabilitiesTitle);

            // captions
            labelCapabilities.Text = String.Format(CultureInfo.CurrentCulture, labelCapabilities.Text, ApplicationEnvironment.ProductNameQualified);
            ListViewOptionWriter listViewOptionWriter = new ListViewOptionWriter(listViewCapabilities);

            listViewOptionWriter.Write(clientOptions);
        }
コード例 #20
0
        public void Initialize(IBlogPostEditingContext context, IBlogClientOptions clientOptions)
        {
            Debug.Assert(_blogId == context.BlogId);

            using (SuspendLogic())
            {
                editorContext = context;

                using (Blog blog = new Blog(context.BlogId))
                    UpdateFieldsForBlog(blog);

                ((IBlogPostEditor)categoryDropDown).Initialize(context, clientOptions);

                foreach (PropertyField field in fields)
                {
                    field.Initialize(context, clientOptions);
                }
            }

            isDirty = false;
        }
コード例 #21
0
        public void OnBlogChanged(Blog newBlog)
        {
            using (SuspendLogic())
            {
                _blogId        = newBlog.Id;
                _targetBlog    = newBlog;
                _clientOptions = newBlog.ClientOptions;

                ((IBlogPostEditor)categoryDropDown).OnBlogChanged(newBlog);
                UpdateFieldsForBlog(newBlog);

                // Tag stuff
                textTags.ShowButton = newBlog.ClientOptions.SupportsGetKeywords;
                if (newBlog.ClientOptions.SupportsGetKeywords)
                {
                    LoadTagValues();
                }

                textTags.DefaultText = newBlog.ClientOptions.KeywordsAsTags ? Res.Get(StringId.TagControlSetTags) : "";
            }
        }
コード例 #22
0
        public AtomClient(AtomProtocolVersion atomVer, Uri postApiUrl, IBlogCredentialsAccessor credentials)
            : base(credentials)
        {
            _feedServiceUrl = postApiUrl;

            // configure client options
            BlogClientOptions clientOptions = new BlogClientOptions();
            ConfigureClientOptions(clientOptions);
            _clientOptions = clientOptions;

            _atomVer = atomVer;
            _atomNS = new Namespace(atomVer.NamespaceUri, "atom");
            _pubNS = new Namespace(atomVer.PubNamespaceUri, "app");
            _nsMgr = new XmlNamespaceManager(new NameTable());
            _nsMgr.AddNamespace(_atomNS.Prefix, _atomNS.Uri);
            _nsMgr.AddNamespace(_pubNS.Prefix, _pubNS.Uri);
            _nsMgr.AddNamespace(xhtmlNS.Prefix, xhtmlNS.Uri);
            _nsMgr.AddNamespace(featuresNS.Prefix, featuresNS.Uri);
            _nsMgr.AddNamespace(mediaNS.Prefix, mediaNS.Uri);
            _nsMgr.AddNamespace(liveNS.Prefix, liveNS.Uri);
        }
コード例 #23
0
        public AtomClient(AtomProtocolVersion atomVer, Uri postApiUrl, IBlogCredentialsAccessor credentials)
            : base(credentials)
        {
            _feedServiceUrl = postApiUrl;

            // configure client options
            BlogClientOptions clientOptions = new BlogClientOptions();

            ConfigureClientOptions(clientOptions);
            _clientOptions = clientOptions;

            _atomVer = atomVer;
            _atomNS  = new Namespace(atomVer.NamespaceUri, "atom");
            _pubNS   = new Namespace(atomVer.PubNamespaceUri, "app");
            _nsMgr   = new XmlNamespaceManager(new NameTable());
            _nsMgr.AddNamespace(_atomNS.Prefix, _atomNS.Uri);
            _nsMgr.AddNamespace(_pubNS.Prefix, _pubNS.Uri);
            _nsMgr.AddNamespace(xhtmlNS.Prefix, xhtmlNS.Uri);
            _nsMgr.AddNamespace(featuresNS.Prefix, featuresNS.Uri);
            _nsMgr.AddNamespace(mediaNS.Prefix, mediaNS.Uri);
            _nsMgr.AddNamespace(liveNS.Prefix, liveNS.Uri);
        }
コード例 #24
0
        public void ResetPostForNewBlog(IBlogClientOptions options)
        {
            Id = String.Empty;
            DatePublished = DateTime.MinValue;

            // if the current blog doesn't support pages then force
            // the post to not be a page
            if (!options.SupportsPages)
                IsPage = false;

            // author and parent are tied to blog, reset them as well
            Author = PostIdAndNameField.Empty;
            PageParent = PostIdAndNameField.Empty;

            ETag = string.Empty;
            AtomRemotePost = null;

            // categories are tied to blog, reset them
            Categories = null;
            NewCategories = null;

            // ping urls are tied to blog, reset them so they are sent again for a new blog
            UncommitPingUrls();
        }
コード例 #25
0
ファイル: Blog.cs プロジェクト: gmilazzoitag/OpenLiveWriter
 public ContentFilterApplier(BlogPost blogPost, IBlogClientOptions clientOptions, ContentFilterMode filterMode)
 {
     _blogPost = blogPost;
     _originalContents = _blogPost.Contents;
     if (_originalContents != null)
         _blogPost.Contents = ApplyContentFilters(clientOptions.ContentFilter, _originalContents, filterMode);
 }
コード例 #26
0
        public void Initialize(IBlogPostEditingContext editingContext, IBlogClientOptions clientOptions)
        {
            // this needs to happen before an editor is loaded, it is needed to know if
            // if the blog this band should show or not.
            bool firstTimeInitialization = _currentEditor == null;

            InitDefaultEditorForBlog();

            base.Initialize(editingContext, clientOptions, GetStyledHtml(), GetPreviewHtml(), true);

            commandSemanticHtml.SetAccountId(_currentBlog.Id, IsRTLTemplate, false);

            _postPropertyEditor.Initialize(editingContext, clientOptions);
        }
コード例 #27
0
 /// <summary>
 /// Enable external users of the class to completely replace
 /// the client options
 /// </summary>
 /// <param name="newClientOptions"></param>
 public void OverrideOptions(IBlogClientOptions newClientOptions)
 {
     _clientOptions = newClientOptions;
 }
コード例 #28
0
        public GoogleBloggerv3Client(Uri postApiUrl, IBlogCredentialsAccessor credentials)
            : base(credentials)
        {
            // configure client options
            BlogClientOptions clientOptions = new BlogClientOptions();
            clientOptions.SupportsCategories = false;
            clientOptions.SupportsMultipleCategories = false;
            clientOptions.SupportsNewCategories = false;
            clientOptions.SupportsCustomDate = true;
            clientOptions.SupportsExcerpt = false;
            clientOptions.SupportsSlug = false;
            clientOptions.SupportsFileUpload = true;
            clientOptions.SupportsKeywords = true;
            clientOptions.SupportsGetKeywords = true;
            clientOptions.SupportsPages = true;
            clientOptions.SupportsExtendedEntries = true;
            _clientOptions = clientOptions;

            _nsMgr = new XmlNamespaceManager(new NameTable());
            _nsMgr.AddNamespace(atomNS.Prefix, atomNS.Uri);
            _nsMgr.AddNamespace(pubNS.Prefix, pubNS.Uri);
            _nsMgr.AddNamespace(AtomClient.xhtmlNS.Prefix, AtomClient.xhtmlNS.Uri);
            _nsMgr.AddNamespace(AtomClient.featuresNS.Prefix, AtomClient.featuresNS.Uri);
            _nsMgr.AddNamespace(AtomClient.mediaNS.Prefix, AtomClient.mediaNS.Uri);
            _nsMgr.AddNamespace(AtomClient.liveNS.Prefix, AtomClient.liveNS.Uri);
        }
コード例 #29
0
 public static IBlogClientOptions ApplyOptionOverrides(OptionReader optionReader, IBlogClientOptions existingOptions)
 {
     return(ApplyOptionOverrides(optionReader, existingOptions, true));
 }
コード例 #30
0
 void IBlogPostEditor.Initialize(IBlogPostEditingContext editingContext, IBlogClientOptions clientOptions)
 {
     _isDirty = false;
 }
コード例 #31
0
 public AtomMediaUploader(XmlNamespaceManager nsMgr, HttpAsyncRequestFilter requestFilter, string collectionUri, IBlogClientOptions options)
     : this(nsMgr, requestFilter, collectionUri, options, new XmlRestRequestHelper())
 {
 }
コード例 #32
0
        public void Write(IBlogClientOptions clientOptions)
        {
            WriteOption(Res.Get(StringId.CapabilityPostDraftToServer), clientOptions.SupportsPostAsDraft);
            WriteOption(Res.Get(StringId.CapabilityFileUpload), clientOptions.SupportsFileUpload);
            WriteOption(Res.Get(StringId.CapabilityExtendedEntries), clientOptions.SupportsExtendedEntries);
            WriteOption(Res.Get(StringId.CapabilityCustomPublishDate), clientOptions.SupportsCustomDate);
            WriteOption(Res.Get(StringId.CapabilityCustomPublishDateUpdate), clientOptions.SupportsCustomDateUpdate);
            WriteOption(Res.Get(StringId.CapabilityCategories), clientOptions.SupportsCategories);
            WriteOption(Res.Get(StringId.CapabilityCategoriesInline), clientOptions.SupportsCategoriesInline);
            WriteOption(Res.Get(StringId.CapabilityMultipleCategories), clientOptions.SupportsMultipleCategories);
            WriteOption(Res.Get(StringId.CapabilityHierarchicalCategories), clientOptions.SupportsHierarchicalCategories);
            WriteOption(Res.Get(StringId.CapabilityNewCategories), clientOptions.SupportsNewCategories);
            WriteOption(Res.Get(StringId.CapabilityNewCategoriesInline), clientOptions.SupportsNewCategoriesInline);
            WriteOption(Res.Get(StringId.CapabilityCategoryScheme), clientOptions.CategoryScheme);
            WriteOption(Res.Get(StringId.CapabilityKeywords), clientOptions.SupportsKeywords);
            WriteOption(Res.Get(StringId.CapabilityKeywordRetrieval), clientOptions.SupportsGetKeywords);
            WriteOption(Res.Get(StringId.CapabilityCommentPolicy), clientOptions.SupportsCommentPolicy);
            WriteOption(Res.Get(StringId.CapabilityTrackbackPolicy), clientOptions.SupportsPingPolicy);
            WriteOption(Res.Get(StringId.CapabilityAuthor), clientOptions.SupportsAuthor);
            WriteOption(Res.Get(StringId.CapabilitySlug), clientOptions.SupportsSlug);
            WriteOption(Res.Get(StringId.CapabilityPassword), clientOptions.SupportsPassword);
            WriteOption(Res.Get(StringId.CapabilityExcerpt), clientOptions.SupportsExcerpt);
            WriteOption(Res.Get(StringId.CapabilitySendTrackbacks), clientOptions.SupportsTrackbacks);
            WriteOption(Res.Get(StringId.CapabilityPages), clientOptions.SupportsPages);
            WriteOption(Res.Get(StringId.CapabilityPageParent), clientOptions.SupportsPageParent);
            WriteOption(Res.Get(StringId.CapabilityPageOrder), clientOptions.SupportsPageOrder);
            WriteOption(Res.Get(StringId.CapabilityHtmlTitles), clientOptions.RequiresHtmlTitles);
            WriteOption(Res.Get(StringId.CapabilityEmptyTitles), clientOptions.SupportsEmptyTitles);
            WriteOption(Res.Get(StringId.CapabilityScripts), clientOptions.SupportsScripts);
            WriteOption(Res.Get(StringId.CapabilityEmbeds), clientOptions.SupportsEmbeds);

            string defaultView;

            switch (clientOptions.DefaultView)
            {
            case "WebLayout":
                defaultView = Res.Get(StringId.CapabilityValueWebLayout);
                break;

            case "WebPreview":
                defaultView = Res.Get(StringId.CapabilityValueWebPreview);
                break;

            case "Normal":
            case "":
            case null:
                defaultView = Res.Get(StringId.CapabilityValueNormal);
                break;

            default:
                defaultView = clientOptions.DefaultView;
                break;
            }
            WriteOption(Res.Get(StringId.CapabilityDefaultView), defaultView);

            WriteOption(Res.Get(StringId.CapabilityCharacterSet), clientOptions.CharacterSet != String.Empty ? clientOptions.CharacterSet : "UTF-8");
            WriteOption(Res.Get(StringId.CapabilityRequiresXHTML), clientOptions.RequiresXHTML);
            WriteOption(Res.Get(StringId.CapabilityTemplateIsRTL), clientOptions.IsRTLTemplate);
            WriteOption(Res.Get(StringId.CapabilityCategoryNameLimit), clientOptions.MaxCategoryNameLength != 0 ? clientOptions.MaxCategoryNameLength.ToString(CultureInfo.CurrentCulture) : Res.Get(StringId.CapabilityValueNoLimit));
            WriteOption(Res.Get(StringId.CapabilityAutoUpdate), clientOptions.SupportsAutoUpdate);
            WriteOption(Res.Get(StringId.CapabilityPostTitleLengthLimit), clientOptions.MaxPostTitleLength != int.MaxValue ? clientOptions.MaxPostTitleLength.ToString(CultureInfo.CurrentCulture) : Res.Get(StringId.Unknown));
        }
コード例 #33
0
 public AtomMediaUploader(XmlNamespaceManager nsMgr, HttpRequestFilter requestFilter, string collectionUri, IBlogClientOptions options)
     : this(nsMgr, requestFilter, collectionUri, options, new XmlRestRequestHelper())
 {
 }
コード例 #34
0
        private static Post ConvertToGoogleBloggerPost(BlogPost post, IBlogClientOptions clientOptions)
        {
            var labels = post.Categories?.Select(x => x.Name).ToList();
            labels?.AddRange(post.NewCategories?.Select(x => x.Name) ?? new List<string>());

            return new Post()
            {
                Content = post.Contents,
                Labels = labels ?? new List<string>(),
                Published = GetDatePublishedOverride(post, clientOptions),
                Title = post.Title,
            };
        }
コード例 #35
0
        public void OnBlogChanged(Blog newBlog)
        {
            _clientOptions = newBlog.ClientOptions;
            _targetBlog = newBlog;

            controller.OnBlogChanged(newBlog);
            ((IBlogPostEditor)postPropertiesForm).OnBlogChanged(newBlog);

            ManageLayout();
        }
コード例 #36
0
        public void Initialize(IBlogPostEditingContext editorContext, IBlogClientOptions clientOptions)
        {
            _editorContext = editorContext;
            _clientOptions = clientOptions;

            controller.Initialize(editorContext, clientOptions);
            ((IBlogPostEditor)postPropertiesForm).Initialize(editorContext, clientOptions);

            ManageLayout();
        }
コード例 #37
0
 public virtual IBlogClientOptions ConstructBlogOptions(IBlogClientOptions defaultOptions)
 {
     return defaultOptions;
 }
コード例 #38
0
        public void UpdateControlVisibility(IBlogPostEditingContext editingContext, IBlogClientOptions options)
        {
            PropertyType requiredType = editingContext.BlogPost.IsPage ? PropertyType.Page : PropertyType.Post;

            bool isCorrectType = (propertyType & requiredType) == requiredType;
            bool visible = isCorrectType && shouldShow(options);
            foreach (Control c in controls)
                if (c != null)
                    c.Visible = visible;
        }
コード例 #39
0
        public void Initialize(IBlogPostEditingContext editingContext, IBlogClientOptions options)
        {
            PropertyType requiredType = editingContext.BlogPost.IsPage ? PropertyType.Page : PropertyType.Post;

            bool isCorrectType = (propertyType & requiredType) == requiredType;
            if (isCorrectType && populate != null)
                populate(editingContext, options);
        }
コード例 #40
0
 public override IBlogClientOptions ConstructBlogOptions(IBlogClientOptions defaultOptions)
 {
     return BlogClientOptions.ApplyOptionOverrides(new OptionReader(ReadProviderOption), defaultOptions);
 }
コード例 #41
0
        public static IBlogClientOptions ApplyOptionOverrides(OptionReader optionReader, IBlogClientOptions existingOptions, bool includeIrregularities)
        {
            BlogClientOptions clientOptions = new BlogClientOptions();

            // Protocol capabilities
            clientOptions.SupportsPostAsDraft            = ReadBool(optionReader("supportsPostAsDraft"), existingOptions.SupportsPostAsDraft);
            clientOptions.SupportsFileUpload             = ReadBool(optionReader("supportsFileUpload"), existingOptions.SupportsFileUpload);
            clientOptions.SupportsExtendedEntries        = ReadBool(optionReader("supportsExtendedEntries"), existingOptions.SupportsExtendedEntries);
            clientOptions.SupportsCustomDate             = ReadBool(optionReader("supportsCustomDate"), existingOptions.SupportsCustomDate);
            clientOptions.SupportsCustomDateUpdate       = ReadBool(optionReader("supportsCustomDateUpdate"), existingOptions.SupportsCustomDateUpdate);
            clientOptions.SupportsHttps                  = ReadBool(optionReader("supportsHttps"), existingOptions.SupportsHttps);
            clientOptions.SupportsCategories             = ReadBool(optionReader(SUPPORTS_CATEGORIES), existingOptions.SupportsCategories);
            clientOptions.SupportsCategoriesInline       = ReadBool(optionReader("supportsCategoriesInline"), existingOptions.SupportsCategoriesInline);
            clientOptions.SupportsMultipleCategories     = ReadBool(optionReader("supportsMultipleCategories"), existingOptions.SupportsMultipleCategories);
            clientOptions.SupportsHierarchicalCategories = ReadBool(optionReader("supportsHierarchicalCategories"), existingOptions.SupportsHierarchicalCategories);
            clientOptions.SupportsNewCategories          = ReadBool(optionReader(SUPPORTS_NEW_CATEGORIES), existingOptions.SupportsNewCategories);
            clientOptions.SupportsNewCategoriesInline    = ReadBool(optionReader("supportsNewCategoriesInline"), existingOptions.SupportsNewCategoriesInline);
            clientOptions.SupportsSuggestCategories      = ReadBool(optionReader("supportsSuggestCategories"), existingOptions.SupportsSuggestCategories);
            clientOptions.CategoryScheme                 = ReadText(optionReader(CATEGORY_SCHEME), existingOptions.CategoryScheme);
            clientOptions.SupportsKeywords               = ReadBool(optionReader("supportsKeywords"), existingOptions.SupportsKeywords);
            clientOptions.SupportsGetKeywords            = ReadBool(optionReader("supportsGetTags"), existingOptions.SupportsGetKeywords);
            clientOptions.SupportsCommentPolicy          = ReadBool(optionReader("supportsCommentPolicy"), existingOptions.SupportsCommentPolicy);
            clientOptions.SupportsPingPolicy             = ReadBool(optionReader("supportsPingPolicy"), existingOptions.SupportsPingPolicy);
            clientOptions.SupportsAuthor                 = ReadBool(optionReader("supportsAuthor"), existingOptions.SupportsAuthor);
            clientOptions.SupportsSlug           = ReadBool(optionReader("supportsSlug"), existingOptions.SupportsSlug);
            clientOptions.SupportsPassword       = ReadBool(optionReader("supportsPassword"), existingOptions.SupportsPassword);
            clientOptions.SupportsExcerpt        = ReadBool(optionReader("supportsExcerpt"), existingOptions.SupportsExcerpt);
            clientOptions.SupportsTrackbacks     = ReadBool(optionReader("supportsTrackbacks"), existingOptions.SupportsTrackbacks);
            clientOptions.SupportsPages          = ReadBool(optionReader("supportsPages"), existingOptions.SupportsPages);
            clientOptions.SupportsPageParent     = ReadBool(optionReader("supportsPageParent"), existingOptions.SupportsPageParent);
            clientOptions.SupportsPageOrder      = ReadBool(optionReader("supportsPageOrder"), existingOptions.SupportsPageOrder);
            clientOptions.SupportsPageTrackbacks = ReadBool(optionReader("supportsPageTrackbacks"), existingOptions.SupportsPageTrackbacks);

            // Writer capabilities
            clientOptions.LinkToSkyDriveSelfPage          = ReadBool(optionReader("linkToSkyDriveSelfPage"), existingOptions.LinkToSkyDriveSelfPage);
            clientOptions.RequiresHtmlTitles              = ReadBool(optionReader("requiresHtmlTitles"), existingOptions.RequiresHtmlTitles);
            clientOptions.ReturnsHtmlTitlesOnGet          = ReadSupportsFeature(optionReader("returnsHtmlTitlesOnGet"), existingOptions.ReturnsHtmlTitlesOnGet);
            clientOptions.SupportsEmptyTitles             = ReadBool(optionReader("supportsEmptyTitles"), existingOptions.SupportsEmptyTitles);
            clientOptions.SupportsScripts                 = ReadSupportsFeature(optionReader(SUPPORTS_SCRIPTS), existingOptions.SupportsScripts);
            clientOptions.SupportsEmbeds                  = ReadSupportsFeature(optionReader(SUPPORTS_EMBEDS), existingOptions.SupportsEmbeds);
            clientOptions.SupportsImageUpload             = ReadSupportsFeature(optionReader("supportsImageUpload"), existingOptions.SupportsImageUpload);
            clientOptions.DefaultView                     = ReadText(optionReader("defaultView"), existingOptions.DefaultView);
            clientOptions.CharacterSet                    = ReadText(optionReader(CHARACTER_SET), existingOptions.CharacterSet);
            clientOptions.RequiresXHTML                   = ReadBool(optionReader(REQUIRES_XHTML), existingOptions.RequiresXHTML);
            clientOptions.DhtmlImageViewer                = ReadText(optionReader(DHTML_IMAGE_VIEWER), existingOptions.DhtmlImageViewer);
            clientOptions.PostBodyBackgroundColor         = ReadInt(optionReader(POST_BODY_BACKGROUND_COLOR), existingOptions.PostBodyBackgroundColor);
            clientOptions.MaxCategoryNameLength           = ReadInt(optionReader("maxCategoryNameLength"), existingOptions.MaxCategoryNameLength);
            clientOptions.SupportsAutoUpdate              = ReadBool(optionReader("supportsAutoUpdate"), existingOptions.SupportsAutoUpdate);
            clientOptions.InvalidPostIdFaultCodePattern   = ReadText(optionReader("invalidPostIdFaultCodePattern"), existingOptions.InvalidPostIdFaultCodePattern);
            clientOptions.InvalidPostIdFaultStringPattern = ReadText(optionReader("invalidPostIdFaultStringPattern"), existingOptions.InvalidPostIdFaultStringPattern);
            clientOptions.IsRTLTemplate                   = ReadBool(optionReader("templateIsRTL"), existingOptions.IsRTLTemplate);
            clientOptions.MaxPostTitleLength              = ReadInt(optionReader("maxPostTitleLength"), existingOptions.MaxPostTitleLength);

            // Weblog
            clientOptions.HomepageLinkText            = ReadText(optionReader("homepageLinkText"), existingOptions.HomepageLinkText);
            clientOptions.AdminLinkText               = ReadText(optionReader("adminLinkText"), existingOptions.AdminLinkText);
            clientOptions.AdminUrl                    = ReadText(optionReader("adminUrl"), existingOptions.AdminUrl);
            clientOptions.PostEditingUrl              = ReadText(optionReader("postEditingUrl"), existingOptions.PostEditingUrl);
            clientOptions.PostEditingUrlPostIdPattern = ReadText(optionReader("postEditingUrlPostIdPattern"), existingOptions.PostEditingUrlPostIdPattern);
            clientOptions.ImagePostingUrl             = ReadText(optionReader(IMAGE_ENDPOINT), existingOptions.ImagePostingUrl);
            clientOptions.ServiceName                 = ReadText(optionReader("serviceName"), existingOptions.ServiceName);

            // Irregularities
            if (includeIrregularities)
            {
                clientOptions.CommentPolicyAsBoolean      = ReadBool(optionReader("commentPolicyAsBoolean"), existingOptions.CommentPolicyAsBoolean);
                clientOptions.AllowPolicyFalseValue       = ReadInt(optionReader("allowPolicyFalseValue"), existingOptions.AllowPolicyFalseValue);
                clientOptions.MaxRecentPosts              = ReadInt(optionReader("maxRecentPosts"), existingOptions.MaxRecentPosts);
                clientOptions.ContentFilter               = ReadText(optionReader("contentFilter"), existingOptions.ContentFilter);
                clientOptions.PermalinkFormat             = ReadText(optionReader("permalinkFormat"), existingOptions.PermalinkFormat);
                clientOptions.PostDateFormat              = ReadText(optionReader("postDateFormat"), existingOptions.PostDateFormat);
                clientOptions.FileUploadNameFormat        = ReadText(optionReader("fileUploadNameFormat"), existingOptions.FileUploadNameFormat);
                clientOptions.UseLocalTime                = ReadBool(optionReader("useLocalTime"), existingOptions.UseLocalTime);
                clientOptions.SupportsPostSynchronization = ReadBool(optionReader("supportsPostSynchronization"), existingOptions.SupportsPostSynchronization);
                clientOptions.TrackbackDelimiter          = ReadTrackbackDelimiter(optionReader("trackbackDelimiter"), existingOptions.TrackbackDelimiter);
                clientOptions.FuturePublishDateWarning    = ReadBool(optionReader("futurePublishDateWarning"), existingOptions.FuturePublishDateWarning);
                clientOptions.UsePicasaImgMaxAlways       = ReadBool(optionReader("usePicasaImgMaxAlways"), existingOptions.UsePicasaImgMaxAlways);
                clientOptions.UsePicasaS1600h             = ReadBool(optionReader("usePicasaS1600h"), existingOptions.UsePicasaS1600h);
                clientOptions.KeywordsAsTags              = ReadBool(optionReader("keywordsAsTags"), existingOptions.KeywordsAsTags);
            }
            else
            {
                clientOptions.CommentPolicyAsBoolean      = existingOptions.CommentPolicyAsBoolean;
                clientOptions.AllowPolicyFalseValue       = existingOptions.AllowPolicyFalseValue;
                clientOptions.MaxRecentPosts              = existingOptions.MaxRecentPosts;
                clientOptions.ContentFilter               = existingOptions.ContentFilter;
                clientOptions.PermalinkFormat             = existingOptions.PermalinkFormat;
                clientOptions.PostDateFormat              = existingOptions.PostDateFormat;
                clientOptions.FileUploadNameFormat        = existingOptions.FileUploadNameFormat;
                clientOptions.UseLocalTime                = existingOptions.UseLocalTime;
                clientOptions.SupportsPostSynchronization = existingOptions.SupportsPostSynchronization;
                clientOptions.TrackbackDelimiter          = existingOptions.TrackbackDelimiter;
                clientOptions.FuturePublishDateWarning    = existingOptions.FuturePublishDateWarning;
                clientOptions.UsePicasaImgMaxAlways       = existingOptions.UsePicasaImgMaxAlways;
                clientOptions.UsePicasaS1600h             = existingOptions.UsePicasaS1600h;
                clientOptions.KeywordsAsTags              = existingOptions.KeywordsAsTags;
            }

            // return options
            return(clientOptions);
        }
コード例 #42
0
        public void OnBlogChanged(Blog newBlog)
        {
            using (SuspendLogic())
            {
                _blogId = newBlog.Id;
                _targetBlog = newBlog;
                _clientOptions = newBlog.ClientOptions;

                ((IBlogPostEditor)categoryDropDown).OnBlogChanged(newBlog);
                UpdateFieldsForBlog(newBlog);

                // Tag stuff
                textTags.ShowButton = newBlog.ClientOptions.SupportsGetKeywords;
                if (newBlog.ClientOptions.SupportsGetKeywords)
                    LoadTagValues();

                textTags.DefaultText = newBlog.ClientOptions.KeywordsAsTags ? Res.Get(StringId.TagControlSetTags) : "";

            }
        }
コード例 #43
0
 public static void ShowInNotepad(IBlogClientOptions options)
 {
     string clientOptionsFile = TempFileManager.Instance.CreateTempFile("BlogClientOptions.txt");
     using (StreamWriter stream = new StreamWriter(clientOptionsFile))
     {
         OptionStreamWriter writer = new OptionStreamWriter(stream);
         writer.Write(options);
     }
     Process.Start(clientOptionsFile);
 }
コード例 #44
0
 // implement IBlogPostEditor so we can participating in showing/hiding
 // the property editor control
 void IBlogPostEditor.Initialize(IBlogPostEditingContext editingContext, IBlogClientOptions clientOptions) { }
コード例 #45
0
 public AtomMediaUploader(XmlNamespaceManager nsMgr, HttpAsyncRequestFilter requestFilter, string collectionUri, IBlogClientOptions options, XmlRestRequestHelper xmlRestRequestHelper)
 {
     this._nsMgr               = nsMgr;
     this._requestFilter       = requestFilter;
     this._collectionUri       = collectionUri;
     this._options             = options;
     this.xmlRestRequestHelper = xmlRestRequestHelper;
 }
コード例 #46
0
        public void Write(IBlogClientOptions clientOptions)
        {
            WriteOption(Res.Get(StringId.CapabilityPostDraftToServer), clientOptions.SupportsPostAsDraft);
            WriteOption(Res.Get(StringId.CapabilityFileUpload), clientOptions.SupportsFileUpload);
            WriteOption(Res.Get(StringId.CapabilityExtendedEntries), clientOptions.SupportsExtendedEntries);
            WriteOption(Res.Get(StringId.CapabilityCustomPublishDate), clientOptions.SupportsCustomDate);
            WriteOption(Res.Get(StringId.CapabilityCustomPublishDateUpdate), clientOptions.SupportsCustomDateUpdate);
            WriteOption(Res.Get(StringId.CapabilityCategories), clientOptions.SupportsCategories);
            WriteOption(Res.Get(StringId.CapabilityCategoriesInline), clientOptions.SupportsCategoriesInline);
            WriteOption(Res.Get(StringId.CapabilityMultipleCategories), clientOptions.SupportsMultipleCategories);
            WriteOption(Res.Get(StringId.CapabilityHierarchicalCategories), clientOptions.SupportsHierarchicalCategories);
            WriteOption(Res.Get(StringId.CapabilityNewCategories), clientOptions.SupportsNewCategories);
            WriteOption(Res.Get(StringId.CapabilityNewCategoriesInline), clientOptions.SupportsNewCategoriesInline);
            WriteOption(Res.Get(StringId.CapabilityCategoryScheme), clientOptions.CategoryScheme);
            WriteOption(Res.Get(StringId.CapabilityKeywords), clientOptions.SupportsKeywords);
            WriteOption(Res.Get(StringId.CapabilityKeywordRetrieval), clientOptions.SupportsGetKeywords);
            WriteOption(Res.Get(StringId.CapabilityCommentPolicy), clientOptions.SupportsCommentPolicy);
            WriteOption(Res.Get(StringId.CapabilityTrackbackPolicy), clientOptions.SupportsPingPolicy);
            WriteOption(Res.Get(StringId.CapabilityAuthor), clientOptions.SupportsAuthor);
            WriteOption(Res.Get(StringId.CapabilitySlug), clientOptions.SupportsSlug);
            WriteOption(Res.Get(StringId.CapabilityPassword), clientOptions.SupportsPassword);
            WriteOption(Res.Get(StringId.CapabilityExcerpt), clientOptions.SupportsExcerpt);
            WriteOption(Res.Get(StringId.CapabilitySendTrackbacks), clientOptions.SupportsTrackbacks);
            WriteOption(Res.Get(StringId.CapabilityPages), clientOptions.SupportsPages);
            WriteOption(Res.Get(StringId.CapabilityPageParent), clientOptions.SupportsPageParent);
            WriteOption(Res.Get(StringId.CapabilityPageOrder), clientOptions.SupportsPageOrder);
            WriteOption(Res.Get(StringId.CapabilityHtmlTitles), clientOptions.RequiresHtmlTitles);
            WriteOption(Res.Get(StringId.CapabilityEmptyTitles), clientOptions.SupportsEmptyTitles);
            WriteOption(Res.Get(StringId.CapabilityScripts), clientOptions.SupportsScripts);
            WriteOption(Res.Get(StringId.CapabilityEmbeds), clientOptions.SupportsEmbeds);

            string defaultView;
            switch (clientOptions.DefaultView)
            {
                case "WebLayout":
                    defaultView = Res.Get(StringId.CapabilityValueWebLayout);
                    break;
                case "WebPreview":
                    defaultView = Res.Get(StringId.CapabilityValueWebPreview);
                    break;
                case "Normal":
                case "":
                case null:
                    defaultView = Res.Get(StringId.CapabilityValueNormal);
                    break;
                default:
                    defaultView = clientOptions.DefaultView;
                    break;
            }
            WriteOption(Res.Get(StringId.CapabilityDefaultView), defaultView);

            WriteOption(Res.Get(StringId.CapabilityCharacterSet), clientOptions.CharacterSet != String.Empty ? clientOptions.CharacterSet : "UTF-8");
            WriteOption(Res.Get(StringId.CapabilityRequiresXHTML), clientOptions.RequiresXHTML);
            WriteOption(Res.Get(StringId.CapabilityTemplateIsRTL), clientOptions.IsRTLTemplate);
            WriteOption(Res.Get(StringId.CapabilityCategoryNameLimit), clientOptions.MaxCategoryNameLength != 0 ? clientOptions.MaxCategoryNameLength.ToString(CultureInfo.CurrentCulture) : Res.Get(StringId.CapabilityValueNoLimit));
            WriteOption(Res.Get(StringId.CapabilityAutoUpdate), clientOptions.SupportsAutoUpdate);
            WriteOption(Res.Get(StringId.CapabilityPostTitleLengthLimit), clientOptions.MaxPostTitleLength != int.MaxValue ? clientOptions.MaxPostTitleLength.ToString(CultureInfo.CurrentCulture) : Res.Get(StringId.Unknown));
        }
コード例 #47
0
 void IBlogPostEditor.Initialize(IBlogPostEditingContext context, IBlogClientOptions clientOptions)
 {
     Text = context.BlogPost.IsPage ? Res.Get(StringId.PageProperties) : Res.Get(StringId.PostProperties);
     controller.Initialize(context, clientOptions);
 }
コード例 #48
0
        private static DateTime? GetDatePublishedOverride(BlogPost post, IBlogClientOptions clientOptions)
        {
            DateTime? datePublishedOverride = post.HasDatePublishedOverride ? post?.DatePublishedOverride : null;
            if (datePublishedOverride.HasValue && clientOptions.UseLocalTime)
            {
                datePublishedOverride = DateTimeHelper.UtcToLocal(datePublishedOverride.Value);
            }

            return datePublishedOverride;
        }
コード例 #49
0
 public virtual IBlogClientOptions ConstructBlogOptions(IBlogClientOptions defaultOptions)
 {
     return(defaultOptions);
 }
コード例 #50
0
        public static IBlogClientOptions ApplyOptionOverrides(OptionReader optionReader, IBlogClientOptions existingOptions, bool includeIrregularities)
        {
            BlogClientOptions clientOptions = new BlogClientOptions();

            // Protocol capabilities
            clientOptions.SupportsPostAsDraft = ReadBool(optionReader("supportsPostAsDraft"), existingOptions.SupportsPostAsDraft);
            clientOptions.SupportsFileUpload = ReadBool(optionReader("supportsFileUpload"), existingOptions.SupportsFileUpload);
            clientOptions.SupportsExtendedEntries = ReadBool(optionReader("supportsExtendedEntries"), existingOptions.SupportsExtendedEntries);
            clientOptions.SupportsCustomDate = ReadBool(optionReader("supportsCustomDate"), existingOptions.SupportsCustomDate);
            clientOptions.SupportsCustomDateUpdate = ReadBool(optionReader("supportsCustomDateUpdate"), existingOptions.SupportsCustomDateUpdate);
            clientOptions.SupportsHttps = ReadBool(optionReader("supportsHttps"), existingOptions.SupportsHttps);
            clientOptions.SupportsCategories = ReadBool(optionReader(SUPPORTS_CATEGORIES), existingOptions.SupportsCategories);
            clientOptions.SupportsCategoriesInline = ReadBool(optionReader("supportsCategoriesInline"), existingOptions.SupportsCategoriesInline);
            clientOptions.SupportsMultipleCategories = ReadBool(optionReader("supportsMultipleCategories"), existingOptions.SupportsMultipleCategories);
            clientOptions.SupportsHierarchicalCategories = ReadBool(optionReader("supportsHierarchicalCategories"), existingOptions.SupportsHierarchicalCategories);
            clientOptions.SupportsNewCategories = ReadBool(optionReader(SUPPORTS_NEW_CATEGORIES), existingOptions.SupportsNewCategories);
            clientOptions.SupportsNewCategoriesInline = ReadBool(optionReader("supportsNewCategoriesInline"), existingOptions.SupportsNewCategoriesInline);
            clientOptions.SupportsSuggestCategories = ReadBool(optionReader("supportsSuggestCategories"), existingOptions.SupportsSuggestCategories);
            clientOptions.CategoryScheme = ReadText(optionReader(CATEGORY_SCHEME), existingOptions.CategoryScheme);
            clientOptions.SupportsKeywords = ReadBool(optionReader("supportsKeywords"), existingOptions.SupportsKeywords);
            clientOptions.SupportsGetKeywords = ReadBool(optionReader("supportsGetTags"), existingOptions.SupportsGetKeywords);
            clientOptions.SupportsCommentPolicy = ReadBool(optionReader("supportsCommentPolicy"), existingOptions.SupportsCommentPolicy);
            clientOptions.SupportsPingPolicy = ReadBool(optionReader("supportsPingPolicy"), existingOptions.SupportsPingPolicy);
            clientOptions.SupportsAuthor = ReadBool(optionReader("supportsAuthor"), existingOptions.SupportsAuthor);
            clientOptions.SupportsSlug = ReadBool(optionReader("supportsSlug"), existingOptions.SupportsSlug);
            clientOptions.SupportsPassword = ReadBool(optionReader("supportsPassword"), existingOptions.SupportsPassword);
            clientOptions.SupportsExcerpt = ReadBool(optionReader("supportsExcerpt"), existingOptions.SupportsExcerpt);
            clientOptions.SupportsTrackbacks = ReadBool(optionReader("supportsTrackbacks"), existingOptions.SupportsTrackbacks);
            clientOptions.SupportsPages = ReadBool(optionReader("supportsPages"), existingOptions.SupportsPages);
            clientOptions.SupportsPageParent = ReadBool(optionReader("supportsPageParent"), existingOptions.SupportsPageParent);
            clientOptions.SupportsPageOrder = ReadBool(optionReader("supportsPageOrder"), existingOptions.SupportsPageOrder);
            clientOptions.SupportsPageTrackbacks = ReadBool(optionReader("supportsPageTrackbacks"), existingOptions.SupportsPageTrackbacks);

            // Writer capabilities
            clientOptions.LinkToSkyDriveSelfPage = ReadBool(optionReader("linkToSkyDriveSelfPage"), existingOptions.LinkToSkyDriveSelfPage);
            clientOptions.RequiresHtmlTitles = ReadBool(optionReader("requiresHtmlTitles"), existingOptions.RequiresHtmlTitles);
            clientOptions.ReturnsHtmlTitlesOnGet = ReadSupportsFeature(optionReader("returnsHtmlTitlesOnGet"), existingOptions.ReturnsHtmlTitlesOnGet);
            clientOptions.SupportsEmptyTitles = ReadBool(optionReader("supportsEmptyTitles"), existingOptions.SupportsEmptyTitles);
            clientOptions.SupportsScripts = ReadSupportsFeature(optionReader(SUPPORTS_SCRIPTS), existingOptions.SupportsScripts);
            clientOptions.SupportsEmbeds = ReadSupportsFeature(optionReader(SUPPORTS_EMBEDS), existingOptions.SupportsEmbeds);
            clientOptions.SupportsImageUpload = ReadSupportsFeature(optionReader("supportsImageUpload"), existingOptions.SupportsImageUpload);
            clientOptions.DefaultView = ReadText(optionReader("defaultView"), existingOptions.DefaultView);
            clientOptions.CharacterSet = ReadText(optionReader(CHARACTER_SET), existingOptions.CharacterSet);
            clientOptions.RequiresXHTML = ReadBool(optionReader(REQUIRES_XHTML), existingOptions.RequiresXHTML);
            clientOptions.DhtmlImageViewer = ReadText(optionReader(DHTML_IMAGE_VIEWER), existingOptions.DhtmlImageViewer);
            clientOptions.PostBodyBackgroundColor = ReadInt(optionReader(POST_BODY_BACKGROUND_COLOR), existingOptions.PostBodyBackgroundColor);
            clientOptions.MaxCategoryNameLength = ReadInt(optionReader("maxCategoryNameLength"), existingOptions.MaxCategoryNameLength);
            clientOptions.SupportsAutoUpdate = ReadBool(optionReader("supportsAutoUpdate"), existingOptions.SupportsAutoUpdate);
            clientOptions.InvalidPostIdFaultCodePattern = ReadText(optionReader("invalidPostIdFaultCodePattern"), existingOptions.InvalidPostIdFaultCodePattern);
            clientOptions.InvalidPostIdFaultStringPattern = ReadText(optionReader("invalidPostIdFaultStringPattern"), existingOptions.InvalidPostIdFaultStringPattern);
            clientOptions.IsRTLTemplate = ReadBool(optionReader("templateIsRTL"), existingOptions.IsRTLTemplate);
            clientOptions.MaxPostTitleLength = ReadInt(optionReader("maxPostTitleLength"), existingOptions.MaxPostTitleLength);

            // Weblog
            clientOptions.HomepageLinkText = ReadText(optionReader("homepageLinkText"), existingOptions.HomepageLinkText);
            clientOptions.AdminLinkText = ReadText(optionReader("adminLinkText"), existingOptions.AdminLinkText);
            clientOptions.AdminUrl = ReadText(optionReader("adminUrl"), existingOptions.AdminUrl);
            clientOptions.PostEditingUrl = ReadText(optionReader("postEditingUrl"), existingOptions.PostEditingUrl);
            clientOptions.PostEditingUrlPostIdPattern = ReadText(optionReader("postEditingUrlPostIdPattern"), existingOptions.PostEditingUrlPostIdPattern);
            clientOptions.ImagePostingUrl = ReadText(optionReader(IMAGE_ENDPOINT), existingOptions.ImagePostingUrl);
            clientOptions.ServiceName = ReadText(optionReader("serviceName"), existingOptions.ServiceName);

            // Irregularities
            if (includeIrregularities)
            {
                clientOptions.CommentPolicyAsBoolean = ReadBool(optionReader("commentPolicyAsBoolean"), existingOptions.CommentPolicyAsBoolean);
                clientOptions.AllowPolicyFalseValue = ReadInt(optionReader("allowPolicyFalseValue"), existingOptions.AllowPolicyFalseValue);
                clientOptions.MaxRecentPosts = ReadInt(optionReader("maxRecentPosts"), existingOptions.MaxRecentPosts);
                clientOptions.ContentFilter = ReadText(optionReader("contentFilter"), existingOptions.ContentFilter);
                clientOptions.PermalinkFormat = ReadText(optionReader("permalinkFormat"), existingOptions.PermalinkFormat);
                clientOptions.PostDateFormat = ReadText(optionReader("postDateFormat"), existingOptions.PostDateFormat);
                clientOptions.FileUploadNameFormat = ReadText(optionReader("fileUploadNameFormat"), existingOptions.FileUploadNameFormat);
                clientOptions.UseLocalTime = ReadBool(optionReader("useLocalTime"), existingOptions.UseLocalTime);
                clientOptions.SupportsPostSynchronization = ReadBool(optionReader("supportsPostSynchronization"), existingOptions.SupportsPostSynchronization);
                clientOptions.TrackbackDelimiter = ReadTrackbackDelimiter(optionReader("trackbackDelimiter"), existingOptions.TrackbackDelimiter);
                clientOptions.FuturePublishDateWarning = ReadBool(optionReader("futurePublishDateWarning"), existingOptions.FuturePublishDateWarning);
                clientOptions.UsePicasaImgMaxAlways = ReadBool(optionReader("usePicasaImgMaxAlways"), existingOptions.UsePicasaImgMaxAlways);
                clientOptions.UsePicasaS1600h = ReadBool(optionReader("usePicasaS1600h"), existingOptions.UsePicasaS1600h);
                clientOptions.KeywordsAsTags = ReadBool(optionReader("keywordsAsTags"), existingOptions.KeywordsAsTags);
            }
            else
            {
                clientOptions.CommentPolicyAsBoolean = existingOptions.CommentPolicyAsBoolean;
                clientOptions.AllowPolicyFalseValue = existingOptions.AllowPolicyFalseValue;
                clientOptions.MaxRecentPosts = existingOptions.MaxRecentPosts;
                clientOptions.ContentFilter = existingOptions.ContentFilter;
                clientOptions.PermalinkFormat = existingOptions.PermalinkFormat;
                clientOptions.PostDateFormat = existingOptions.PostDateFormat;
                clientOptions.FileUploadNameFormat = existingOptions.FileUploadNameFormat;
                clientOptions.UseLocalTime = existingOptions.UseLocalTime;
                clientOptions.SupportsPostSynchronization = existingOptions.SupportsPostSynchronization;
                clientOptions.TrackbackDelimiter = existingOptions.TrackbackDelimiter;
                clientOptions.FuturePublishDateWarning = existingOptions.FuturePublishDateWarning;
                clientOptions.UsePicasaImgMaxAlways = existingOptions.UsePicasaImgMaxAlways;
                clientOptions.UsePicasaS1600h = existingOptions.UsePicasaS1600h;
                clientOptions.KeywordsAsTags = existingOptions.KeywordsAsTags;
            }

            // return options
            return clientOptions;
        }
コード例 #51
0
 private static Page ConvertToGoogleBloggerPage(BlogPost page, IBlogClientOptions clientOptions)
 {
     return new Page()
     {
         Content = page.Contents,
         Published = GetDatePublishedOverride(page, clientOptions),
         Title = page.Title,
     };
 }
コード例 #52
0
        public void Initialize(IBlogPostEditingContext context, IBlogClientOptions clientOptions)
        {
            Debug.Assert(_blogId == context.BlogId);

            using (SuspendLogic())
            {
                editorContext = context;

                using (Blog blog = new Blog(context.BlogId))
                    UpdateFieldsForBlog(blog);

                ((IBlogPostEditor)categoryDropDown).Initialize(context, clientOptions);

                foreach (PropertyField field in fields)
                    field.Initialize(context, clientOptions);
            }

            isDirty = false;
        }
コード例 #53
0
 public override IBlogClientOptions ConstructBlogOptions(IBlogClientOptions defaultOptions)
 {
     return(BlogClientOptions.ApplyOptionOverrides(new OptionReader(ReadProviderOption), defaultOptions));
 }
コード例 #54
0
 void IBlogPostEditor.Initialize(IBlogPostEditingContext editingContext, IBlogClientOptions clientOptions)
 {
     _isDirty = false;
 }
コード例 #55
0
 public void OverrideOptions(IBlogClientOptions newClientOptions)
 {
     _clientOptions = newClientOptions;
 }
コード例 #56
0
 public static IBlogClientOptions ApplyOptionOverrides(OptionReader optionReader, IBlogClientOptions existingOptions)
 {
     return ApplyOptionOverrides(optionReader, existingOptions, true);
 }