public PostService(ILogger <PostService> logger, IOptions <AppSettings> settings, IRepository <PostEntity> postRepository, IRepository <PostExtensionEntity> postExtensionRepository, IRepository <TagEntity> tagRepository, IRepository <PostTagEntity> postTagRepository, IRepository <PostPublishEntity> postPublishRepository, IRepository <CategoryEntity> categoryRepository, IRepository <PostCategoryEntity> postCategoryRepository, IHtmlCodec htmlCodec, IBlogConfig blogConfig, IDateTimeResolver dateTimeResolver, IMoongladeAudit moongladeAudit) : base(logger, settings) { _postRepository = postRepository; _postExtensionRepository = postExtensionRepository; _tagRepository = tagRepository; _postTagRepository = postTagRepository; _postPublishRepository = postPublishRepository; _categoryRepository = categoryRepository; _postCategoryRepository = postCategoryRepository; _htmlCodec = htmlCodec; _blogConfig = blogConfig; _dateTimeResolver = dateTimeResolver; _moongladeAudit = moongladeAudit; }
public static string GetPostAbstract(string rawHtmlContent, int wordCount, IHtmlCodec htmlCodec = null) { var plainText = RemoveTags(rawHtmlContent, false, htmlCodec); var result = plainText.Ellipsize(wordCount); return(result); }
public async Task <IActionResult> Edit(Guid id, [FromServices] IHtmlCodec htmlCodec) { var postResponse = _postService.GetPost(id); if (!postResponse.IsSuccess) { return(ServerError()); } var post = postResponse.Item; if (null != post) { var editViewModel = new PostEditViewModel { PostId = post.Id, IsPublished = post.IsPublished, HtmlContent = htmlCodec.HtmlDecode(post.EncodedHtmlContent), Slug = post.Slug, Title = post.Title, EnableComment = post.CommentEnabled, ExposedToSiteMap = post.ExposedToSiteMap, FeedIncluded = post.FeedIncluded, ContentLanguageCode = post.ContentLanguageCode }; ViewBag.PubDateStr = post.PubDateUtc == null ? null : $"{post.PubDateUtc.GetValueOrDefault():yyyy/M/d}"; var tagStr = post.Tags .Select(p => p.TagName) .Aggregate(string.Empty, (current, item) => current + (item + ",")); tagStr = tagStr.TrimEnd(','); editViewModel.Tags = tagStr; var catResponse = await _categoryService.GetAllCategoriesAsync(); if (!catResponse.IsSuccess) { return(ServerError("Unsuccessful response from _categoryService.GetAllCategoriesAsync().")); } var catList = catResponse.Item; if (null != catList && catList.Count > 0) { var cbCatList = catList.Select(p => new CheckBoxViewModel( p.DisplayName, p.Id.ToString(), post.Categories.Any(q => q.Id == p.Id))).ToList(); editViewModel.CategoryList = cbCatList; } return(View("CreateOrEdit", editViewModel)); } return(NotFound()); }
public CustomPageService( ILogger <CustomPageService> logger, IOptions <AppSettings> settings, IRepository <CustomPageEntity> customPageRepository, IHtmlCodec htmlCodec) : base(logger, settings) { _customPageRepository = customPageRepository; _htmlCodec = htmlCodec; }
public CustomPageService( ILogger <CustomPageService> logger, IOptions <AppSettings> settings, IRepository <CustomPageEntity> customPageRepository, IHtmlCodec htmlCodec, IMoongladeAudit moongladeAudit) : base(logger, settings) { _customPageRepository = customPageRepository; _htmlCodec = htmlCodec; _moongladeAudit = moongladeAudit; }
public CommentService( ILogger <CommentService> logger, IOptions <AppSettings> settings, IBlogConfig blogConfig, IHtmlCodec htmlCodec, IRepository <CommentEntity> commentRepository, IRepository <CommentReplyEntity> commentReplyRepository, IRepository <PostEntity> postRepository) : base(logger, settings) { _blogConfig = blogConfig; _htmlCodec = htmlCodec; _commentRepository = commentRepository; _commentReplyRepository = commentReplyRepository; _postRepository = postRepository; }
public SyndicationService( ILogger <SyndicationService> logger, IOptions <AppSettings> settings, IBlogConfig blogConfig, IHttpContextAccessor httpContextAccessor, IRepository <CategoryEntity> categoryRepository, IRepository <PostEntity> postRepository, IHtmlCodec htmlCodec) : base(logger, settings) { _blogConfig = blogConfig; _categoryRepository = categoryRepository; _postRepository = postRepository; _htmlCodec = htmlCodec; var acc = httpContextAccessor; _baseUrl = $"{acc.HttpContext.Request.Scheme}://{acc.HttpContext.Request.Host}"; }
public PostService(ILogger <PostService> logger, IOptions <AppSettings> settings, IRepository <PostEntity> postRepository, IRepository <PostExtensionEntity> postExtensionRepository, IRepository <TagEntity> tagRepository, IRepository <PostTagEntity> postTagRepository, IRepository <PostPublishEntity> postPublishRepository, IRepository <CategoryEntity> categoryRepository, IRepository <PostCategoryEntity> postCategoryRepository, IHtmlCodec htmlCodec) : base(logger, settings) { _postRepository = postRepository; _postExtensionRepository = postExtensionRepository; _tagRepository = tagRepository; _postTagRepository = postTagRepository; _postPublishRepository = postPublishRepository; _categoryRepository = categoryRepository; _postCategoryRepository = postCategoryRepository; _htmlCodec = htmlCodec; }
public static string RemoveTags(string html, bool htmlDecode = false, IHtmlCodec htmlCodec = null) { if (string.IsNullOrEmpty(html)) { return(string.Empty); } var result = new char[html.Length]; var cursor = 0; var inside = false; foreach (var current in html) { switch (current) { case '<': inside = true; continue; case '>': inside = false; continue; } if (!inside) { result[cursor++] = current; } } var stringResult = new string(result, 0, cursor); if (htmlDecode) { stringResult = htmlCodec?.HtmlDecode(stringResult); } return(stringResult); }