private void migrateComments(BlogPost blogPost, BlogsManager blogsManager, Entry post, Feed feed) { BlogPost livePost = blogsManager.GetLive(blogPost); foreach (Entry cmmnt in feed.Entry.Where(en => en.Categories.Any(c => c.CategoryType == CategoryType.Comment) && en.ReplyTo != null && en.ReplyTo.Id == post.Id)) { Comment comment = blogsManager.CreateComment(livePost); comment.AuthorName = cmmnt.Author.Name; comment.Email = cmmnt.Author.Email; comment.Content = cmmnt.Content; comment.DateCreated = cmmnt.Published; blogsManager.SaveChanges(); } }
public void MigrateBlogs(StreamReader source) { XmlSerializer xmlSerializer = new XmlSerializer(typeof(Feed)); Feed feed = xmlSerializer.Deserialize(source) as Feed; BlogsManager blogsManager = BlogsManager.GetManager(); Blog blog = blogsManager.CreateBlog(); blog.Title = feed.Title; blog.Description = feed.Title; blog.UrlName = Regex.Replace(blog.Title.ToLower(), @"[^\w\-\!\$\'\(\)\=\@\d_]+", "-"); blogsManager.SaveChanges(); foreach (Entry post in feed.Entry.Where(en => en.Categories.Any(c => c.CategoryType == CategoryType.Post))) { migrateBlogPost(blogsManager, blog, post, feed); } }
private void migrateBlogPost(BlogsManager blogsManager, Blog blog, Entry post, Feed feed) { BlogPost blogPost = blogsManager.CreateBlogPost(); blogPost.Parent = blog; blogPost.Content = post.Content; blogPost.Title = post.Title; blogPost.DateCreated = post.Published; blogPost.PublicationDate = post.Published; blogPost.LastModified = post.Updated; blogPost.ItemDefaultUrl = "2012/06/net-guy-velocityconf-2012-day-1.html"; blogsManager.SaveChanges(); var bag = new Dictionary<string, string>(); bag.Add("ContentType", typeof(BlogPost).FullName); WorkflowManager.MessageWorkflow(blogPost.Id, typeof(BlogPost), null, "Publish", false, bag); migrateComments(blogPost, blogsManager, post, feed); migrateTags(post, blogPost, blogsManager); }
/// <summary> /// Creates a blog post with specified publication date. /// </summary> /// <param name="blogPostTitle">The blog post title.</param> /// <param name="blogId">The blog id.</param> /// <param name="publicationDate">The blog post publication date.</param> /// <returns></returns> public Guid CreateBlogPostSpecificPublicationDate(string blogPostTitle, Guid blogId, DateTime publicationDate) { BlogsManager blogsManager = new BlogsManager(); var blog = blogsManager.GetBlog(blogId); var post = blogsManager.CreateBlogPost(); post.Parent = blog; post.Title = blogPostTitle; post.UrlName = ServerArrangementUtilities.GetFormatedUrlName(blogPostTitle); Guid blogPostId = post.Id; post.SetWorkflowStatus(blogsManager.Provider.ApplicationName, "Published"); blogsManager.RecompileAndValidateUrls(blog); blogsManager.Lifecycle.PublishWithSpecificDate(post, publicationDate); blogsManager.SaveChanges(); return blogPostId; }
/// <summary> /// Creates a blog post with specified publication date. /// </summary> /// <param name="blogPostTitle">The blog post title.</param> /// <param name="blogId">The blog id.</param> /// <param name="publicationDate">The blog post publication date.</param> /// <returns></returns> public Guid CreateBlogPostSpecificPublicationDate(string blogPostTitle, Guid blogId, DateTime publicationDate) { BlogsManager blogsManager = new BlogsManager(); var blog = blogsManager.GetBlog(blogId); var post = blogsManager.CreateBlogPost(); post.Parent = blog; post.Title = blogPostTitle; post.UrlName = ServerArrangementUtilities.GetFormatedUrlName(blogPostTitle); Guid blogPostId = post.Id; post.SetWorkflowStatus(blogsManager.Provider.ApplicationName, "Published"); blogsManager.RecompileAndValidateUrls(blog); blogsManager.Lifecycle.PublishWithSpecificDate(post, publicationDate); blogsManager.SaveChanges(); return(blogPostId); }
private void migrateTags(Entry post, BlogPost blogPost, BlogsManager blogsManager) { TaxonomyManager taxonomyManager = new TaxonomyManager(); var tax = taxonomyManager.GetTaxonomies <FlatTaxonomy>().Where(t => t.Name == "Tags").SingleOrDefault(); foreach (Category tag in post.Categories.Where(c => c.CategoryType == CategoryType.Unknown)) { var taxon = taxonomyManager.GetTaxa <FlatTaxon>().Where(t => t.Title == tag.Term).FirstOrDefault(); if (taxon == null) { taxon = taxonomyManager.CreateTaxon <FlatTaxon>(); taxon.Name = tag.Term; taxon.Title = tag.Term; tax.Taxa.Add(taxon); taxonomyManager.SaveChanges(); } blogPost.Organizer.AddTaxa("Tags", taxon.Id); blogsManager.SaveChanges(); } }
private void migrateBlogPost(BlogsManager blogsManager, Blog blog, Entry post, Feed feed) { BlogPost blogPost = blogsManager.CreateBlogPost(); blogPost.Parent = blog; blogPost.Content = post.Content; blogPost.Title = post.Title; blogPost.DateCreated = post.Published; blogPost.PublicationDate = post.Published; blogPost.LastModified = post.Updated; blogPost.ItemDefaultUrl = "2012/06/net-guy-velocityconf-2012-day-1.html"; blogsManager.SaveChanges(); var bag = new Dictionary <string, string>(); bag.Add("ContentType", typeof(BlogPost).FullName); WorkflowManager.MessageWorkflow(blogPost.Id, typeof(BlogPost), null, "Publish", false, bag); migrateComments(blogPost, blogsManager, post, feed); migrateTags(post, blogPost, blogsManager); }
private void migrateTags(Entry post, BlogPost blogPost, BlogsManager blogsManager) { TaxonomyManager taxonomyManager = new TaxonomyManager(); var tax = taxonomyManager.GetTaxonomies<FlatTaxonomy>().Where(t => t.Name == "Tags").SingleOrDefault(); foreach (Category tag in post.Categories.Where(c => c.CategoryType == CategoryType.Unknown)) { var taxon = taxonomyManager.GetTaxa<FlatTaxon>().Where(t => t.Title == tag.Term).FirstOrDefault(); if (taxon == null) { taxon = taxonomyManager.CreateTaxon<FlatTaxon>(); taxon.Name = tag.Term; taxon.Title = tag.Term; tax.Taxa.Add(taxon); taxonomyManager.SaveChanges(); } blogPost.Organizer.AddTaxa("Tags", taxon.Id); blogsManager.SaveChanges(); } }