Browse Source

Merge pull request #7746 from abpframework/page-refactoring

CMS Kit - Page refactoring
pull/7784/head
İlkay İlknur 6 years ago
committed by GitHub
parent
commit
673cdd0f35
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs
  2. 32
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs
  3. 25
      modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Pages/EfCorePageRepository.cs
  4. 9
      modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Pages/PagePublicAppService.cs

6
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)] [Authorize(CmsKitAdminPermissions.Pages.Default)]
public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppService public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppService
{ {
protected readonly IPageRepository PageRepository; protected IPageRepository PageRepository { get; }
public PageAdminAppService(IPageRepository pageRepository) public PageAdminAppService(IPageRepository pageRepository)
{ {
@ -66,8 +66,8 @@ namespace Volo.CmsKit.Admin.Pages
await CheckPageUrlAsync(input.Url); await CheckPageUrlAsync(input.Url);
} }
page.Title = input.Title; page.SetTitle(input.Title);
page.Url = input.Url; page.SetUrl(input.Url);
page.Description = input.Description; page.Description = input.Description;
await PageRepository.UpdateAsync(page); await PageRepository.UpdateAsync(page);

32
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Pages/Page.cs

@ -8,26 +8,36 @@ namespace Volo.CmsKit.Pages
{ {
public class Page : FullAuditedAggregateRoot<Guid>, IMultiTenant public class Page : FullAuditedAggregateRoot<Guid>, 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() 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); Title = Check.NotNullOrEmpty(title, nameof(title), PageConsts.MaxTitleLength);
Url = Check.NotNullOrWhiteSpace(url, nameof(url), PageConsts.MaxUrlLength); Url = Check.NotNullOrEmpty(url, nameof(url), PageConsts.MaxUrlLength);
Description = Check.Length(description, nameof(description), PageConsts.MaxDescriptionLength); Description = Check.Length(description, nameof(description), PageConsts.MaxDescriptionLength);
TenantId = tenantId; 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);
}
} }
} }

25
modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Pages/EfCorePageRepository.cs

@ -17,13 +17,14 @@ namespace Volo.CmsKit.Pages
{ {
} }
public virtual async Task<int> GetCountAsync(string filter = null, CancellationToken cancellationToken = default) public virtual async Task<int> GetCountAsync(string filter = null,
CancellationToken cancellationToken = default)
{ {
return await (await GetDbSetAsync()).WhereIf( return await (await GetDbSetAsync()).WhereIf(
!filter.IsNullOrWhiteSpace(), !filter.IsNullOrWhiteSpace(),
x => x =>
x.Title.Contains(filter) x.Title.Contains(filter)
).CountAsync(GetCancellationToken(cancellationToken)); ).CountAsync(GetCancellationToken(cancellationToken));
} }
public virtual async Task<List<Page>> GetListAsync( public virtual async Task<List<Page>> GetListAsync(
@ -34,12 +35,12 @@ namespace Volo.CmsKit.Pages
CancellationToken cancellationToken = default) CancellationToken cancellationToken = default)
{ {
return await (await GetDbSetAsync()).WhereIf( return await (await GetDbSetAsync()).WhereIf(
!filter.IsNullOrWhiteSpace(), !filter.IsNullOrWhiteSpace(),
x => x =>
x.Title.Contains(filter)) x.Title.Contains(filter))
.OrderBy(sorting ?? nameof(Page.Title)) .OrderBy(sorting ?? nameof(Page.Title))
.PageBy(skipCount, maxResultCount) .PageBy(skipCount, maxResultCount)
.ToListAsync(GetCancellationToken(cancellationToken)); .ToListAsync(GetCancellationToken(cancellationToken));
} }
public virtual Task<Page> GetByUrlAsync(string url, CancellationToken cancellationToken = default) public virtual Task<Page> 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)); return await (await GetDbSetAsync()).AnyAsync(x => x.Url == url, GetCancellationToken(cancellationToken));
} }
} }
} }

9
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 public class PagePublicAppService : CmsKitPublicAppServiceBase, IPagePublicAppService
{ {
protected readonly IPageRepository PageRepository; protected IPageRepository PageRepository { get; }
public PagePublicAppService(IPageRepository pageRepository) public PagePublicAppService(IPageRepository pageRepository)
{ {
@ -14,14 +14,15 @@ namespace Volo.CmsKit.Public.Pages
public virtual async Task<PageDto> FindByUrlAsync(string url) public virtual async Task<PageDto> FindByUrlAsync(string url)
{ {
PageDto pageDto = null;
var page = await PageRepository.FindByUrlAsync(url); var page = await PageRepository.FindByUrlAsync(url);
if (page == null) if (page !=null)
{ {
return null; pageDto = ObjectMapper.Map<Page, PageDto>(page);
} }
return ObjectMapper.Map<Page, PageDto>(page); return pageDto;
} }
} }
} }
Loading…
Cancel
Save