Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
        public static string GetPostAbstract(string rawHtmlContent, int wordCount, IHtmlCodec htmlCodec = null)
        {
            var plainText = RemoveTags(rawHtmlContent, false, htmlCodec);
            var result    = plainText.Ellipsize(wordCount);

            return(result);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
 public CustomPageService(
     ILogger <CustomPageService> logger,
     IOptions <AppSettings> settings,
     IRepository <CustomPageEntity> customPageRepository,
     IHtmlCodec htmlCodec) : base(logger, settings)
 {
     _customPageRepository = customPageRepository;
     _htmlCodec            = htmlCodec;
 }
Ejemplo n.º 5
0
 public CustomPageService(
     ILogger <CustomPageService> logger,
     IOptions <AppSettings> settings,
     IRepository <CustomPageEntity> customPageRepository,
     IHtmlCodec htmlCodec,
     IMoongladeAudit moongladeAudit) : base(logger, settings)
 {
     _customPageRepository = customPageRepository;
     _htmlCodec            = htmlCodec;
     _moongladeAudit       = moongladeAudit;
 }
Ejemplo n.º 6
0
        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;
        }
Ejemplo n.º 7
0
        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}";
        }
Ejemplo n.º 8
0
 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;
 }
Ejemplo n.º 9
0
        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);
        }