public bool TryConvertModel(IndexViewModel model, out SyndicationFeed syndicationFeed) { syndicationFeed = new SyndicationFeed( model.SiteName, model.SiteName, new Uri(_urlResolver.Home()), "AllPostsFeed", new DateTimeOffset(DateTime.Now)) { Description = new TextSyndicationContent(model.SiteName) }; List <SyndicationItem> feedItems = new List <SyndicationItem>(); model.Posts.Each(post => { var feedItem = new SyndicationItem( post.Title, post.Body, new Uri(_urlResolver.PublishedPost(post).ToFullUrl()), new Uri(_urlResolver.PublishedPost(post).ToFullUrl()).ToString(), new DateTimeOffset(post.Published)); feedItem.Authors.Add(new SyndicationPerson(post.User.Email, post.User.DisplayName, post.User.Url)); post.Tags.Each(tag => feedItem.Categories.Add(new SyndicationCategory(tag.Name))); feedItems.Add(feedItem); }); syndicationFeed.Items = feedItems.AsEnumerable(); return(true); }
public BlogPostViewModel Comment(BlogPostCommentViewModel inModel) { var badRedirectResult = new BlogPostViewModel { ResultOverride = new RedirectResult(_resolver.PageNotFound()) }; // Trying to reduce spam comments if (!string.IsNullOrEmpty(inModel.OptionalUrl) && ( inModel.OptionalUrl.Contains("geocities.com") || inModel.OptionalUrl.Contains("tripod.com"))) { return(badRedirectResult); } if (inModel.Slug.IsEmpty()) { return(badRedirectResult); } var post = _repository.Query(new PostBySlug(inModel.Slug)).SingleOrDefault(); if (post == null) { return(badRedirectResult); } var postDisplay = new PostDisplay(post); if (inModel.ValidationResults.GetInvalidFields().Count() > 0) { var bblo = new BlogPostViewModel { Post = postDisplay, Comment = new CommentFormDisplay(new Comment { Body = inModel.Body, UserSubscribed = inModel.Subscribed, User = new User { DisplayName = inModel.DisplayName, Email = inModel.Email, Url = inModel.OptionalUrl, TwitterUserName = inModel.OptionalTwitterUserName, }, }, postDisplay), SiteName = "{0} - {1}".ToFormat(inModel.SiteName, postDisplay.Title), //ResultOverride = new RedirectResult(_resolver.PublishedPost(postDisplay) + "#leave_comment"), }; bblo.Comment.ValidationResults.CloneFrom(inModel.ValidationResults); return(bblo); } var user = _userService.AddOrUpdateUser(inModel.Email, HttpUtility.HtmlEncode(inModel.DisplayName), HttpUtility.HtmlEncode(inModel.OptionalUrl), HttpUtility.HtmlEncode(inModel.OptionalTwitterUserName)); _blogPostCommentService.AddCommentToBlogPost(HttpUtility.HtmlEncode(inModel.Body), inModel.Subscribed, user, post, inModel.OptionalTwitterUserName); return(new BlogPostViewModel { ResultOverride = new RedirectResult(_resolver.PublishedPost(postDisplay)) }); }
private mwPost Convert(Post post) { var mwpost = new mwPost { dateCreated = post.Published.Value, description = post.Body, title = post.Title, postid = post.ID.ToString(), link = _urlResolver.PublishedPost(new PostDisplay(post)), permalink = _urlResolver.PublishedPost(new PostDisplay(post)), userid = post.User.ID.ToString() }; List <string> categories = new List <string>(); post.GetTags().Each(tag => categories.Add(tag.Name)); mwpost.categories = categories.ToArray(); return(mwpost); }
public BlogPostViewModel Comment(BlogPostCommentViewModel inModel) { var badRedirectResult = new BlogPostViewModel { ResultOverride = new RedirectResult(_resolver.PageNotFoundUrl()) }; if (inModel.Slug.IsEmpty()) { return(badRedirectResult); } var post = _repository.Query(new PostBySlug(inModel.Slug)).SingleOrDefault(); if (post == null) { return(badRedirectResult); } var result = new BlogPostViewModel(); valid_comment_submission(inModel, result); if (result.InvalidFields.Count > 0) { result.ResultOverride = new RedirectResult(_resolver.PublishedPost(new PostDisplay(post))); return(result); } var user = _userService.AddOrUpdateUser(inModel.UserEmail, inModel.UserDisplayName, inModel.UserUrl); _blogPostCommentService.AddCommentToBlogPost(inModel.Body, inModel.UserSubscribed, user, post); var postDisplay = new PostDisplay(post); result.ResultOverride = new RedirectResult(_resolver.PublishedPost(postDisplay)); return(result); }
public bool SendCommentPostedReply(Post post, string twitterUserName, string displayName) { var pageUrl = _tinyUrlService.Tinyfy(_urlResolver.PublishedPost(new PostDisplay(post))); var pageTitle = post.Title; if (pageTitle.Length > 50) { pageTitle = pageTitle.Substring(0, 47) + "..."; } var message = "New comment from {0} in {1} - {2}".ToFormat(displayName, pageTitle, pageUrl); List <string> twitterUserNames = post.GetComments() .Where(comment => (!string.IsNullOrEmpty(comment.TwitterUserName) && comment.TwitterUserName != twitterUserName)) .Select(x => x.TwitterUserName) .ToList(); twitterUserNames.Add(post.User.TwitterUserName); twitterUserNames.Distinct().Each(userName => _twitterClient.SendReply(_siteConfiguration.TwitterUserName, _siteConfiguration.TwitterPassword, userName, message)); return(true); }