diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs index 3db45dac95..ce0a57800b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs @@ -14,7 +14,7 @@ namespace Volo.CmsKit.Admin.Pages [Authorize(CmsKitAdminPermissions.Pages.Default)] public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppService { - protected readonly IPageRepository PageRepository; + protected IPageRepository PageRepository { get; } public PageAdminAppService(IPageRepository pageRepository) { @@ -66,8 +66,8 @@ namespace Volo.CmsKit.Admin.Pages await CheckPageUrlAsync(input.Url); } - page.Title = input.Title; - page.Url = input.Url; + page.SetTitle(input.Title); + page.SetUrl(input.Url); page.Description = input.Description; await PageRepository.UpdateAsync(page); diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs index 240fc629d6..dc22b8c002 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs @@ -8,26 +8,36 @@ namespace Volo.CmsKit.Pages { public class Page : FullAuditedAggregateRoot, IMultiTenant { - public Guid? TenantId { get; set; } + [CanBeNull] public virtual Guid? TenantId { get; set; } - public virtual string Title { get; set; } + [NotNull] public virtual string Title { get; protected set; } + + [NotNull] public virtual string Url { get; protected set; } + + [CanBeNull] public virtual string Description { get; set; } - public virtual string Url { get; set; } - - public virtual string Description { get; set; } - protected Page() { - } - public Page(Guid id, [NotNull] string title, [NotNull] string url, [CanBeNull] string description = null, Guid? tenantId = null) : base(id) + public Page(Guid id, [NotNull] string title, [NotNull] string url, [CanBeNull] string description = null, + Guid? tenantId = null) : base(id) { - Title = Check.NotNullOrWhiteSpace(title, nameof(title), PageConsts.MaxTitleLength); - Url = Check.NotNullOrWhiteSpace(url, nameof(url), PageConsts.MaxUrlLength); + Title = Check.NotNullOrEmpty(title, nameof(title), PageConsts.MaxTitleLength); + Url = Check.NotNullOrEmpty(url, nameof(url), PageConsts.MaxUrlLength); Description = Check.Length(description, nameof(description), PageConsts.MaxDescriptionLength); - + TenantId = tenantId; } + + public virtual void SetTitle(string title) + { + Title = Check.NotNullOrEmpty(title, nameof(title), PageConsts.MaxTitleLength); + } + + public virtual void SetUrl(string url) + { + Url = Check.NotNullOrEmpty(url, nameof(url), PageConsts.MaxUrlLength); + } } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Pages/EfCorePageRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Pages/EfCorePageRepository.cs index 2fc6d92c52..c51a51c632 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Pages/EfCorePageRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Pages/EfCorePageRepository.cs @@ -17,13 +17,14 @@ namespace Volo.CmsKit.Pages { } - public virtual async Task GetCountAsync(string filter = null, CancellationToken cancellationToken = default) + public virtual async Task GetCountAsync(string filter = null, + CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()).WhereIf( - !filter.IsNullOrWhiteSpace(), - x => - x.Title.Contains(filter) - ).CountAsync(GetCancellationToken(cancellationToken)); + !filter.IsNullOrWhiteSpace(), + x => + x.Title.Contains(filter) + ).CountAsync(GetCancellationToken(cancellationToken)); } public virtual async Task> GetListAsync( @@ -34,12 +35,12 @@ namespace Volo.CmsKit.Pages CancellationToken cancellationToken = default) { return await (await GetDbSetAsync()).WhereIf( - !filter.IsNullOrWhiteSpace(), - x => - x.Title.Contains(filter)) - .OrderBy(sorting ?? nameof(Page.Title)) - .PageBy(skipCount, maxResultCount) - .ToListAsync(GetCancellationToken(cancellationToken)); + !filter.IsNullOrWhiteSpace(), + x => + x.Title.Contains(filter)) + .OrderBy(sorting ?? nameof(Page.Title)) + .PageBy(skipCount, maxResultCount) + .ToListAsync(GetCancellationToken(cancellationToken)); } public virtual Task GetByUrlAsync(string url, CancellationToken cancellationToken = default) @@ -57,4 +58,4 @@ namespace Volo.CmsKit.Pages return await (await GetDbSetAsync()).AnyAsync(x => x.Url == url, GetCancellationToken(cancellationToken)); } } -} +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs index c8da8f33aa..fe8e8c6638 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs @@ -5,7 +5,7 @@ namespace Volo.CmsKit.Public.Pages { public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppService { - protected readonly IPageRepository PageRepository; + protected IPageRepository PageRepository { get; } public PagePublicAppService(IPageRepository pageRepository) { @@ -14,14 +14,15 @@ namespace Volo.CmsKit.Public.Pages public virtual async Task FindByUrlAsync(string url) { + PageDto pageDto = null; var page = await PageRepository.FindByUrlAsync(url); - if (page == null) + if (page !=null) { - return null; + pageDto = ObjectMapper.Map(page); } - return ObjectMapper.Map(page); + return pageDto; } } } \ No newline at end of file