diff --git a/modules/blogging/src/Volo.Blogging.Web/AbpBloggingWebAutoMapperProfile.cs b/modules/blogging/src/Volo.Blogging.Web/AbpBloggingWebAutoMapperProfile.cs index e5d40c6be3..f96b302a6a 100644 --- a/modules/blogging/src/Volo.Blogging.Web/AbpBloggingWebAutoMapperProfile.cs +++ b/modules/blogging/src/Volo.Blogging.Web/AbpBloggingWebAutoMapperProfile.cs @@ -1,6 +1,6 @@ using AutoMapper; using Volo.Abp.AutoMapper; -using Volo.Blogging.Pages.Blog.Posts; +using Volo.Blogging.Pages.Blogs.Posts; using Volo.Blogging.Posts; namespace Volo.Blogging diff --git a/modules/blogging/src/Volo.Blogging.Web/BloggingUrlOptions.cs b/modules/blogging/src/Volo.Blogging.Web/BloggingUrlOptions.cs index f66258c211..554112041c 100644 --- a/modules/blogging/src/Volo.Blogging.Web/BloggingUrlOptions.cs +++ b/modules/blogging/src/Volo.Blogging.Web/BloggingUrlOptions.cs @@ -41,7 +41,7 @@ namespace Volo.Blogging /// Determines whether to enable single blog mode by removing the blog name from the routing. /// When enabled, only a single blog is allowed within the module. /// - public bool Enable { get; set; } + public bool Enabled { get; set; } public string BlogName { get; set; } } diff --git a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs index c35e60db3e..9de636cdb2 100644 --- a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs +++ b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs @@ -92,7 +92,7 @@ namespace Volo.Blogging var routePrefix = urlOptions.RoutePrefix; - if (urlOptions.SingleBlogMode.Enable) + if (urlOptions.SingleBlogMode.Enabled) { options.Conventions.AddPageRoute("/Blogs/Posts/Index", routePrefix); options.Conventions.AddPageRoute("/Blogs/Posts/Detail", routePrefix + "{postUrl}"); diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPageHelper.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPageHelper.cs index 10047fcb2b..ea09035a47 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPageHelper.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPageHelper.cs @@ -1,16 +1,14 @@ using System; -using System.Globalization; using System.Linq; using System.Text; using System.Text.RegularExpressions; +using Markdig; using Microsoft.AspNetCore.Html; using Microsoft.AspNetCore.Mvc.Localization; -using Markdig; using Volo.Abp.DependencyInjection; -using Volo.Abp.Localization; using Volo.Blogging.Localization; -namespace Volo.Blogging.Pages.Blog +namespace Volo.Blogging.Pages.Blogs { public class BloggingPageHelper : ITransientDependency { diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPageModel.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPageModel.cs index 74c924404e..af34694cd8 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPageModel.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/BloggingPageModel.cs @@ -1,10 +1,11 @@ using System; +using System.Linq; using System.Threading.Tasks; using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Blogging.Blogs; using Volo.Blogging.Blogs.Dtos; -namespace Volo.Blogging.Pages.Blog +namespace Volo.Blogging.Pages.Blogs { public abstract class BloggingPageModel : AbpPageModel { @@ -15,7 +16,7 @@ namespace Volo.Blogging.Pages.Blog protected async Task GetBlogAsync(IBlogAppService blogAppService, BloggingUrlOptions blogOptions, string blogShortName) { - if (!blogOptions.SingleBlogMode.Enable) + if (!blogOptions.SingleBlogMode.Enabled) { return await blogAppService.GetByShortNameAsync(blogShortName); } @@ -26,12 +27,7 @@ namespace Volo.Blogging.Pages.Blog } var blogs = await blogAppService.GetListAsync(); - if (blogs.Items.Count == 1) - { - return blogs.Items[0]; - } - - return await blogAppService.GetByShortNameAsync(blogOptions.SingleBlogMode.BlogName); + return blogs.Items.Count == 1 ? blogs.Items[0] : blogs.Items.SingleOrDefault(x => x.ShortName == blogShortName); } } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Index.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Index.cshtml index 4c220fd67d..ac2d54999b 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Index.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Index.cshtml @@ -1,9 +1,8 @@ @page -@using Volo.Blogging.Pages.Blog @using Microsoft.AspNetCore.Mvc.Localization @using Volo.Blogging.Localization @inject IHtmlLocalizer L -@model IndexModel +@model Volo.Blogging.Pages.Blogs.IndexModel @{ ViewBag.PageTitle = "Blogs"; } diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Index.cshtml.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Index.cshtml.cs index 83abf579ec..9c9e6a0638 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Index.cshtml.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Index.cshtml.cs @@ -6,7 +6,7 @@ using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Blogging.Blogs; using Volo.Blogging.Blogs.Dtos; -namespace Volo.Blogging.Pages.Blog +namespace Volo.Blogging.Pages.Blogs { public class IndexModel : AbpPageModel { @@ -23,7 +23,7 @@ namespace Volo.Blogging.Pages.Blog public virtual async Task OnGetAsync() { - if (_blogOptions.SingleBlogMode.Enable) + if (_blogOptions.SingleBlogMode.Enabled) { return RedirectToPage("./Posts/Index"); } diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml index 20b4ed3dc2..2ac70237ea 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml @@ -5,7 +5,6 @@ @using Microsoft.Extensions.Options @using Volo.Abp.Users @using Volo.Blogging -@using Volo.Blogging.Pages.Blog.Posts @using Volo.Blogging.Areas.Blog.Helpers.TagHelpers @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Prismjs @using Volo.Blogging.SocialMedia @@ -14,11 +13,12 @@ @using Microsoft.AspNetCore.Mvc.Localization @using Microsoft.AspNetCore.Mvc.TagHelpers @using Volo.Blogging.Localization -@using Volo.Blogging.Pages.Blog +@using Volo.Blogging.Pages.Blogs +@using Volo.Blogging.Pages.Blogs.Posts @inject IHtmlLocalizer L @inject BloggingPageHelper BloggingPageHelper @inject ICurrentUser CurrentUser -@model DetailModel +@model Volo.Blogging.Pages.Blogs.Posts.DetailModel @{ ViewBag.Title = Model.Post.Title; ViewBag.Description = Model.Post.Description; diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs index ed1a7bec95..18cfa93735 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Detail.cshtml.cs @@ -4,7 +4,6 @@ using System.Threading.Tasks; using System.Web; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Blogging.Blogs; using Volo.Blogging.Blogs.Dtos; using Volo.Blogging.Comments; @@ -12,7 +11,7 @@ using Volo.Blogging.Comments.Dtos; using Volo.Blogging.Pages.Blogs.Shared.Helpers; using Volo.Blogging.Posts; -namespace Volo.Blogging.Pages.Blog.Posts +namespace Volo.Blogging.Pages.Blogs.Posts { public class DetailModel : BloggingPageModel { @@ -64,7 +63,7 @@ namespace Volo.Blogging.Pages.Blog.Posts return NotFound(); } - if (_blogOptions.SingleBlogMode.Enable) + if (_blogOptions.SingleBlogMode.Enabled) { BlogShortName = _blogOptions.SingleBlogMode.BlogName; } diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Edit.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Edit.cshtml index 2fb737654e..926c8073ca 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Edit.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Edit.cshtml @@ -1,11 +1,11 @@ @page @using Volo.Abp.AspNetCore.Mvc.UI.Packages.TuiEditor -@using Volo.Blogging.Pages.Blog.Posts @using Volo.Blogging.Posts @using Microsoft.AspNetCore.Mvc.Localization @using Volo.Blogging.Localization +@using Volo.Blogging.Pages.Blogs.Posts @inject IHtmlLocalizer L -@model EditModel +@model Volo.Blogging.Pages.Blogs.Posts.EditModel @{ ViewBag.PageTitle = "Edit Blog Post"; } diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Edit.cshtml.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Edit.cshtml.cs index 2cf700420f..e322a439f0 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Edit.cshtml.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Edit.cshtml.cs @@ -7,14 +7,13 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.Domain.Entities; using Volo.Abp.Validation; using Volo.Blogging.Blogs; using Volo.Blogging.Pages.Blogs.Shared.Helpers; using Volo.Blogging.Posts; -namespace Volo.Blogging.Pages.Blog.Posts +namespace Volo.Blogging.Pages.Blogs.Posts { public class EditModel : BloggingPageModel { @@ -47,7 +46,7 @@ namespace Volo.Blogging.Pages.Blog.Posts return Redirect("/"); } - if (_blogOptions.SingleBlogMode.Enable) + if (_blogOptions.SingleBlogMode.Enabled) { BlogShortName = _blogOptions.SingleBlogMode.BlogName; } @@ -88,7 +87,7 @@ namespace Volo.Blogging.Pages.Blog.Posts { nameof(DetailModel.PostUrl), editedPost.Url } }; - if (!_blogOptions.SingleBlogMode.Enable) + if (!_blogOptions.SingleBlogMode.Enabled) { routeValues.Add(nameof(DetailModel.BlogShortName), blog.ShortName); } diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml index daaebb4f1e..a0ca2d81e3 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml @@ -4,17 +4,17 @@ @using Volo.Abp.AspNetCore.Mvc.UI.Packages.OwlCarousel @using Volo.Blogging @inject IAuthorizationService Authorization -@model Volo.Blogging.Pages.Blog.Posts.IndexModel +@model IndexModel @using Microsoft.Extensions.Localization @using Microsoft.Extensions.Options @using Volo.Blogging.Localization -@using Volo.Blogging.Pages.Blog -@using IndexModel = Volo.Blogging.Pages.Blog.Posts.IndexModel +@using Volo.Blogging.Pages.Blogs +@using IndexModel = Volo.Blogging.Pages.Blogs.Posts.IndexModel @inject IStringLocalizer L @inject BloggingPageHelper BloggingPageHelper @{ ViewBag.Title = "Read All Blog Posts"; - var blogShortNameRouteParam = Model.BlogOptions.SingleBlogMode.Enable ? null : Model.BlogShortName; + var blogShortNameRouteParam = Model.BlogOptions.SingleBlogMode.Enabled ? null : Model.BlogShortName; } @section scripts { diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml.cs index 5b3c7f9c6f..89dea3eba7 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/Index.cshtml.cs @@ -1,9 +1,7 @@ -using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.Domain.Entities; using Volo.Blogging.Blogs; using Volo.Blogging.Blogs.Dtos; @@ -12,7 +10,7 @@ using Volo.Blogging.Posts; using Volo.Blogging.Tagging; using Volo.Blogging.Tagging.Dtos; -namespace Volo.Blogging.Pages.Blog.Posts +namespace Volo.Blogging.Pages.Blogs.Posts { public class IndexModel : BloggingPageModel { @@ -54,7 +52,12 @@ namespace Volo.Blogging.Pages.Blog.Posts BlogShortName = Blog.ShortName; } catch (EntityNotFoundException) - { + { + if (BlogOptions.SingleBlogMode.Enabled) + { + return NotFound(); + } + return RedirectToPage("/Blogs/Index"); } diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/New.cshtml b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/New.cshtml index 3b0943e75a..bd1140ef04 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/New.cshtml +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/New.cshtml @@ -1,11 +1,11 @@ @page @using Volo.Abp.AspNetCore.Mvc.UI.Packages.TuiEditor -@using Volo.Blogging.Pages.Blog.Posts @using Volo.Blogging.Posts @using Microsoft.AspNetCore.Mvc.Localization @using Volo.Blogging.Localization +@using Volo.Blogging.Pages.Blogs.Posts @inject IHtmlLocalizer L -@model NewModel +@model Volo.Blogging.Pages.Blogs.Posts.NewModel @{ ViewBag.PageTitle = @L["NewBlogPost"]; } diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/New.cshtml.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/New.cshtml.cs index 94ea9ed513..9624525a78 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/New.cshtml.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Posts/New.cshtml.cs @@ -6,14 +6,13 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; -using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; using Volo.Abp.Validation; using Volo.Blogging.Blogs; using Volo.Blogging.Blogs.Dtos; using Volo.Blogging.Pages.Blogs.Shared.Helpers; using Volo.Blogging.Posts; -namespace Volo.Blogging.Pages.Blog.Posts +namespace Volo.Blogging.Pages.Blogs.Posts { public class NewModel : BloggingPageModel { @@ -78,7 +77,7 @@ namespace Volo.Blogging.Pages.Blog.Posts { nameof(DetailModel.PostUrl), postWithDetailsDto.Url } }; - if (!_blogOptions.SingleBlogMode.Enable) + if (!_blogOptions.SingleBlogMode.Enabled) { routeValues.Add(nameof(DetailModel.BlogShortName), blog.ShortName); }