Browse Source

Added CmsKit Page

pull/6858/head
Ahmet 6 years ago
parent
commit
2cf68eed2e
  1. 3
      modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Pages/IPageAppService.cs
  2. 7
      modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Pages/PageAppService.cs
  3. 7
      modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Controllers/Pages/PageController.cs
  4. 15
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/Pages/Index.cshtml
  5. 26
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/Pages/Index.cshtml.cs
  6. 4
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/_ViewImports.cshtml
  7. 13
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CommonPageModel.cs

3
modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo/CmsKit/Pages/IPageAppService.cs

@ -1,11 +1,14 @@
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using JetBrains.Annotations;
namespace Volo.CmsKit.Pages namespace Volo.CmsKit.Pages
{ {
public interface IPageAppService public interface IPageAppService
{ {
Task<PageDto> GetAsync(Guid id); Task<PageDto> GetAsync(Guid id);
Task<PageDto> GetByUrlAsync([NotNull] string url);
Task<PageDto> CreatePageAsync(CreatePageInputDto input); Task<PageDto> CreatePageAsync(CreatePageInputDto input);

7
modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Pages/PageAppService.cs

@ -24,6 +24,13 @@ namespace Volo.CmsKit.Pages
return ObjectMapper.Map<Page, PageDto>(page); return ObjectMapper.Map<Page, PageDto>(page);
} }
public virtual async Task<PageDto> GetByUrlAsync(string url)
{
var page = await PageRepository.GetByUrlAsync(url);
return ObjectMapper.Map<Page, PageDto>(page);
}
public virtual async Task<PageDto> CreatePageAsync(CreatePageInputDto input) public virtual async Task<PageDto> CreatePageAsync(CreatePageInputDto input)
{ {
var page = await CreatePageAsync(input.Title, input.Url, input.Description); var page = await CreatePageAsync(input.Title, input.Url, input.Description);

7
modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo/CmsKit/Controllers/Pages/PageController.cs

@ -25,6 +25,13 @@ namespace Volo.CmsKit.Controllers.Pages
return PageAppService.GetAsync(id); return PageAppService.GetAsync(id);
} }
[HttpGet]
[Route("url/{url}")]
public Task<PageDto> GetByUrlAsync(string url)
{
return PageAppService.GetByUrlAsync(url);
}
[HttpPost] [HttpPost]
[Route("create")] [Route("create")]
public virtual Task<PageDto> CreatePageAsync(CreatePageInputDto input) public virtual Task<PageDto> CreatePageAsync(CreatePageInputDto input)

15
modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/Pages/Index.cshtml

@ -0,0 +1,15 @@
@page "{pageUrl}"
@using Microsoft.AspNetCore.Mvc.Localization
@using Volo.CmsKit.Localization
@using Volo.CmsKit.Web.Pages.CmsKit.Pages
@using Volo.CmsKit.Web.Pages.CmsKit.Shared.Components.Pages
@model IndexModel
@inject IHtmlLocalizer<CmsKitResource> L
@await Component.InvokeAsync(typeof(DefaultPageViewComponent),
new
{
pageId = Model.Page.Id,
title = Model.Page.Title,
description = Model.Page.Description
})

26
modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/Pages/Index.cshtml.cs

@ -0,0 +1,26 @@
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.CmsKit.Pages;
namespace Volo.CmsKit.Web.Pages.CmsKit.Pages
{
public class IndexModel : CommonPageModel
{
[BindProperty(SupportsGet = true)]
public string PageUrl { get; set; }
protected readonly IPageAppService PageAppService;
public PageDto Page;
public IndexModel(IPageAppService pageAppService)
{
PageAppService = pageAppService;
}
public async Task OnGetAsync()
{
Page = await PageAppService.GetByUrlAsync(PageUrl);
}
}
}

4
modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CmsKit/_ViewImports.cshtml

@ -0,0 +1,4 @@
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap
@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling

13
modules/cms-kit/src/Volo.CmsKit.Common.Web/Pages/CommonPageModel.cs

@ -0,0 +1,13 @@
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages;
using Volo.CmsKit.Localization;
namespace Volo.CmsKit.Web.Pages
{
public abstract class CommonPageModel : AbpPageModel
{
protected CommonPageModel()
{
LocalizationResourceType = typeof(CmsKitResource);
}
}
}
Loading…
Cancel
Save