Browse Source

Add PageStatus support to page DTOs and services

Introduces the PageStatus property to page-related DTOs, allowing filtering and setting of page status in admin APIs. Updates service methods and repository calls to handle the new status parameter, and enforces the status field as required in the EF Core model configuration.
pull/24053/head
Mansur Besleney 4 months ago
parent
commit
4ab718502d
  1. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/PageLookupInputDto.cs
  2. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs
  3. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/GetPagesInputDto.cs
  4. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs
  5. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs
  6. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuItemAdminAppService.cs
  7. 6
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs
  8. 1
      modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/PageLookupInputDto.cs

@ -1,5 +1,6 @@
using System;
using Volo.Abp.Application.Dtos;
using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Admin.Menus;
@ -7,4 +8,6 @@ namespace Volo.CmsKit.Admin.Menus;
public class PageLookupInputDto : PagedAndSortedResultRequestDto
{
public string Filter { get; set; }
public PageStatus? Status { get; set; }
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/CreatePageInputDto.cs

@ -28,4 +28,6 @@ public class CreatePageInputDto: ExtensibleObject
[DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxStyleLength))]
public string Style { get; set; }
public PageStatus Status { get; set; } = PageStatus.Draft;
}

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/GetPagesInputDto.cs

@ -1,5 +1,6 @@
using System;
using Volo.Abp.Application.Dtos;
using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Admin.Pages;
@ -7,4 +8,6 @@ namespace Volo.CmsKit.Admin.Pages;
public class GetPagesInputDto : PagedAndSortedResultRequestDto
{
public string Filter { get; set; }
public PageStatus? Status { get; set; } = null;
}

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs

@ -1,6 +1,7 @@
using System;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Domain.Entities;
using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Admin.Pages;
@ -21,5 +22,7 @@ public class PageDto : ExtensibleAuditedEntityDto<Guid>, IHasConcurrencyStamp
public bool IsHomePage { get; set; }
public PageStatus Status { get; set; }
public string ConcurrencyStamp { get; set; }
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/UpdatePageInputDto.cs

@ -30,5 +30,7 @@ public class UpdatePageInputDto : ExtensibleObject, IHasConcurrencyStamp
[DynamicMaxLength(typeof(PageConsts), nameof(PageConsts.MaxStyleLength))]
public string Style { get; set; }
public PageStatus Status { get; set; }
public string ConcurrencyStamp { get; set; }
}

1
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuItemAdminAppService.cs

@ -135,6 +135,7 @@ public class MenuItemAdminAppService : CmsKitAdminAppServiceBase, IMenuItemAdmin
var pages = await PageRepository.GetListAsync(
input.Filter,
input.Status,
input.MaxResultCount,
input.SkipCount,
input.Sorting

6
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs

@ -49,10 +49,11 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi
public virtual async Task<PagedResultDto<PageDto>> GetListAsync(GetPagesInputDto input)
{
var count = await PageRepository.GetCountAsync(input.Filter);
var count = await PageRepository.GetCountAsync(input.Filter, input.Status);
var pages = await PageRepository.GetListAsync(
input.Filter,
input.Status,
input.MaxResultCount,
input.SkipCount,
input.Sorting
@ -67,7 +68,7 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi
[Authorize(CmsKitAdminPermissions.Pages.Create)]
public virtual async Task<PageDto> CreateAsync(CreatePageInputDto input)
{
var page = await PageManager.CreateAsync(input.Title, input.Slug, input.Content, input.Script, input.Style, input.LayoutName);
var page = await PageManager.CreateAsync(input.Title, input.Slug, input.Content, input.Script, input.Style, input.LayoutName, input.Status);
input.MapExtraPropertiesTo(page);
await PageRepository.InsertAsync(page);
@ -94,6 +95,7 @@ public class PageAdminAppService : CmsKitAdminAppServiceBase, IPageAdminAppServi
page.SetScript(input.Script);
page.SetStyle(input.Style);
page.SetLayoutName(input.LayoutName);
await PageManager.SetStatusAsync(page, input.Status);
page.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp);
input.MapExtraPropertiesTo(page);

1
modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs

@ -168,6 +168,7 @@ public static class CmsKitDbContextModelCreatingExtensions
b.Property(x => x.Title).IsRequired().HasMaxLength(PageConsts.MaxTitleLength);
b.Property(x => x.Slug).IsRequired().HasMaxLength(PageConsts.MaxSlugLength);
b.Property(x => x.Content).HasMaxLength(PageConsts.MaxContentLength);
b.Property(x => x.Status).IsRequired();
b.HasIndex(x => new { x.TenantId, Url = x.Slug });

Loading…
Cancel
Save