Exemplo n.º 1
0
        public async Task <PostResult> NewPost(BlogPost post, INewCategoryContext newCategoryContext, bool publish)
        {
            // initialize result
            PostResult result = new PostResult();

            try
            {
                using (new ContentFilterApplier(post, ClientOptions, ContentFilterMode.Publish))
                {
                    // make the post
                    if (post.IsPage)
                    {
                        result.PostId = await BlogClient.NewPage(_settings.HostBlogId, post, publish, result.ETag,
                                                                 result.AtomRemotePost);
                    }
                    else
                    {
                        result.PostId = await BlogClient.NewPost(_settings.HostBlogId, post, newCategoryContext, publish, result);
                    }
                }

                // note success
                _settings.LastPublishFailed = false;
            }
            catch
            {
                _settings.LastPublishFailed = true;
                throw;
            }

            // determine the date-published based on whether there was an override
            if (post.HasDatePublishedOverride)
            {
                result.DatePublished = post.DatePublishedOverride;
            }
            else
            {
                result.DatePublished = DateTime.UtcNow;
            }

            // return result
            return(result);
        }