Added CmsKit Page

pull/6858/head
Ahmet 5 years ago
parent 9a296e0410
commit 2cf68eed2e

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

@ -24,6 +24,13 @@ namespace Volo.CmsKit.Pages
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)
{
var page = await CreatePageAsync(input.Title, input.Url, input.Description);

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

@ -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
})

@ -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);
}
}
}

@ -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

@ -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