diff --git a/modules/cms-kit/Volo.CmsKit.sln b/modules/cms-kit/Volo.CmsKit.sln index 4d92e6e34b..9874845fd1 100644 --- a/modules/cms-kit/Volo.CmsKit.sln +++ b/modules/cms-kit/Volo.CmsKit.sln @@ -55,6 +55,28 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unified", "unified", "{963F EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "public", "public", "{3C74B8E8-CB34-49C8-B02A-05E959601FEE}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "admin", "admin", "{E737206B-FA99-4460-861D-82902ECE93DB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Admin.Application", "src\Volo.CmsKit.Admin.Application\Volo.CmsKit.Admin.Application.csproj", "{A5363215-BF61-467F-80D0-40D93590F509}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Admin.Application.Contracts", "src\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj", "{AE000591-86E3-4AD4-AA86-C47FED4A3ACB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Admin.HttpApi", "src\Volo.CmsKit.Admin.HttpApi\Volo.CmsKit.Admin.HttpApi.csproj", "{A402371A-B714-4BBC-AC22-9C0BD7679F25}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Admin.HttpApi.Client", "src\Volo.CmsKit.Admin.HttpApi.Client\Volo.CmsKit.Admin.HttpApi.Client.csproj", "{97D7BB7A-1D45-4E54-B327-3718F62E8A86}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Admin.Web", "src\Volo.CmsKit.Admin.Web\Volo.CmsKit.Admin.Web.csproj", "{CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Public.Application", "src\Volo.CmsKit.Public.Application\Volo.CmsKit.Public.Application.csproj", "{E3963E05-9645-4AFD-AC99-C5E9F9153B61}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Public.Application.Contracts", "src\Volo.CmsKit.Public.Application.Contracts\Volo.CmsKit.Public.Application.Contracts.csproj", "{50147423-F37D-46D3-A25D-C51CD48A7DA7}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Public.HttpApi", "src\Volo.CmsKit.Public.HttpApi\Volo.CmsKit.Public.HttpApi.csproj", "{37C03B72-5FD8-4B67-8090-8A20CD8095A6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Public.HttpApi.Client", "src\Volo.CmsKit.Public.HttpApi.Client\Volo.CmsKit.Public.HttpApi.Client.csproj", "{E790C2C6-39AC-4068-AA7D-309DC9AA1437}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.CmsKit.Public.Web", "src\Volo.CmsKit.Public.Web\Volo.CmsKit.Public.Web.csproj", "{BE2572ED-F505-435D-9A90-30DBC6C2DC1D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -141,6 +163,46 @@ Global {3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Debug|Any CPU.Build.0 = Debug|Any CPU {3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Release|Any CPU.ActiveCfg = Release|Any CPU {3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Release|Any CPU.Build.0 = Release|Any CPU + {A5363215-BF61-467F-80D0-40D93590F509}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A5363215-BF61-467F-80D0-40D93590F509}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A5363215-BF61-467F-80D0-40D93590F509}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A5363215-BF61-467F-80D0-40D93590F509}.Release|Any CPU.Build.0 = Release|Any CPU + {AE000591-86E3-4AD4-AA86-C47FED4A3ACB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE000591-86E3-4AD4-AA86-C47FED4A3ACB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE000591-86E3-4AD4-AA86-C47FED4A3ACB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE000591-86E3-4AD4-AA86-C47FED4A3ACB}.Release|Any CPU.Build.0 = Release|Any CPU + {A402371A-B714-4BBC-AC22-9C0BD7679F25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A402371A-B714-4BBC-AC22-9C0BD7679F25}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A402371A-B714-4BBC-AC22-9C0BD7679F25}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A402371A-B714-4BBC-AC22-9C0BD7679F25}.Release|Any CPU.Build.0 = Release|Any CPU + {97D7BB7A-1D45-4E54-B327-3718F62E8A86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97D7BB7A-1D45-4E54-B327-3718F62E8A86}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97D7BB7A-1D45-4E54-B327-3718F62E8A86}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97D7BB7A-1D45-4E54-B327-3718F62E8A86}.Release|Any CPU.Build.0 = Release|Any CPU + {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}.Release|Any CPU.Build.0 = Release|Any CPU + {E3963E05-9645-4AFD-AC99-C5E9F9153B61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3963E05-9645-4AFD-AC99-C5E9F9153B61}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3963E05-9645-4AFD-AC99-C5E9F9153B61}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3963E05-9645-4AFD-AC99-C5E9F9153B61}.Release|Any CPU.Build.0 = Release|Any CPU + {50147423-F37D-46D3-A25D-C51CD48A7DA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50147423-F37D-46D3-A25D-C51CD48A7DA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50147423-F37D-46D3-A25D-C51CD48A7DA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50147423-F37D-46D3-A25D-C51CD48A7DA7}.Release|Any CPU.Build.0 = Release|Any CPU + {37C03B72-5FD8-4B67-8090-8A20CD8095A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37C03B72-5FD8-4B67-8090-8A20CD8095A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37C03B72-5FD8-4B67-8090-8A20CD8095A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37C03B72-5FD8-4B67-8090-8A20CD8095A6}.Release|Any CPU.Build.0 = Release|Any CPU + {E790C2C6-39AC-4068-AA7D-309DC9AA1437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E790C2C6-39AC-4068-AA7D-309DC9AA1437}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E790C2C6-39AC-4068-AA7D-309DC9AA1437}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E790C2C6-39AC-4068-AA7D-309DC9AA1437}.Release|Any CPU.Build.0 = Release|Any CPU + {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -169,6 +231,17 @@ Global {36E2735F-CEAB-44C8-A6D1-2CDAFF399751} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49} {3B7B6317-1B85-4164-8E11-75574F80AE17} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49} {3C74B8E8-CB34-49C8-B02A-05E959601FEE} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} + {E737206B-FA99-4460-861D-82902ECE93DB} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545} + {A5363215-BF61-467F-80D0-40D93590F509} = {E737206B-FA99-4460-861D-82902ECE93DB} + {AE000591-86E3-4AD4-AA86-C47FED4A3ACB} = {E737206B-FA99-4460-861D-82902ECE93DB} + {A402371A-B714-4BBC-AC22-9C0BD7679F25} = {E737206B-FA99-4460-861D-82902ECE93DB} + {97D7BB7A-1D45-4E54-B327-3718F62E8A86} = {E737206B-FA99-4460-861D-82902ECE93DB} + {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045} = {E737206B-FA99-4460-861D-82902ECE93DB} + {E3963E05-9645-4AFD-AC99-C5E9F9153B61} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE} + {50147423-F37D-46D3-A25D-C51CD48A7DA7} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE} + {37C03B72-5FD8-4B67-8090-8A20CD8095A6} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE} + {E790C2C6-39AC-4068-AA7D-309DC9AA1437} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE} + {BE2572ED-F505-435D-9A90-30DBC6C2DC1D} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj new file mode 100644 index 0000000000..6cda6e3bc2 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj @@ -0,0 +1,16 @@ + + + + + + netstandard2.0 + + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/AdminApplicationContractsModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/AdminApplicationContractsModule.cs new file mode 100644 index 0000000000..b2fd98458f --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/AdminApplicationContractsModule.cs @@ -0,0 +1,16 @@ +using Volo.Abp.Application; +using Volo.Abp.Modularity; +using Volo.Abp.Authorization; + +namespace Volo.CmsKit.Admin +{ + [DependsOn( + typeof(CmsKitDomainSharedModule), + typeof(AbpDddApplicationContractsModule), + typeof(AbpAuthorizationModule) + )] + public class AdminApplicationContractsModule : AbpModule + { + + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Permissions/AdminPermissionDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Permissions/AdminPermissionDefinitionProvider.cs new file mode 100644 index 0000000000..bc3c24ffb9 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Permissions/AdminPermissionDefinitionProvider.cs @@ -0,0 +1,19 @@ +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Localization; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Admin.Permissions +{ + public class AdminPermissionDefinitionProvider : PermissionDefinitionProvider + { + public override void Define(IPermissionDefinitionContext context) + { + var myGroup = context.AddGroup(AdminPermissions.GroupName, L("Permission:Admin")); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Permissions/AdminPermissions.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Permissions/AdminPermissions.cs new file mode 100644 index 0000000000..35417c02bc --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Permissions/AdminPermissions.cs @@ -0,0 +1,14 @@ +using Volo.Abp.Reflection; + +namespace Volo.CmsKit.Admin.Permissions +{ + public class AdminPermissions + { + public const string GroupName = "Admin"; + + public static string[] GetAll() + { + return ReflectionHelper.GetPublicConstantsRecursively(typeof(AdminPermissions)); + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj new file mode 100644 index 0000000000..0ad8da1379 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj @@ -0,0 +1,17 @@ + + + + + + netstandard2.0 + + + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/AdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/AdminAppService.cs new file mode 100644 index 0000000000..9504290fc7 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/AdminAppService.cs @@ -0,0 +1,14 @@ +using Volo.Abp.Application.Services; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Admin +{ + public abstract class AdminAppService : ApplicationService + { + protected AdminAppService() + { + LocalizationResource = typeof(CmsKitResource); + ObjectMapperContext = typeof(AdminApplicationModule); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/AdminApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/AdminApplicationAutoMapperProfile.cs new file mode 100644 index 0000000000..0e41481ed3 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/AdminApplicationAutoMapperProfile.cs @@ -0,0 +1,14 @@ +using AutoMapper; + +namespace Volo.CmsKit.Admin +{ + public class AdminApplicationAutoMapperProfile : Profile + { + public AdminApplicationAutoMapperProfile() + { + /* You can configure your AutoMapper mapping configuration here. + * Alternatively, you can split your mapping configurations + * into multiple profile classes for a better organization. */ + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/AdminApplicationModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/AdminApplicationModule.cs new file mode 100644 index 0000000000..dc4c73600e --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/AdminApplicationModule.cs @@ -0,0 +1,25 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AutoMapper; +using Volo.Abp.Modularity; +using Volo.Abp.Application; + +namespace Volo.CmsKit.Admin +{ + [DependsOn( + typeof(CmsKitDomainModule), + typeof(AdminApplicationContractsModule), + typeof(AbpDddApplicationModule), + typeof(AbpAutoMapperModule) + )] + public class AdminApplicationModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddAutoMapperObjectMapper(); + Configure(options => + { + options.AddMaps(validate: true); + }); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj new file mode 100644 index 0000000000..5dc2a07cfd --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj @@ -0,0 +1,15 @@ + + + + + + netstandard2.0 + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo/CmsKit/Admin/AdminHttpApiClientModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo/CmsKit/Admin/AdminHttpApiClientModule.cs new file mode 100644 index 0000000000..dd600cf2c1 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo/CmsKit/Admin/AdminHttpApiClientModule.cs @@ -0,0 +1,22 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Http.Client; +using Volo.Abp.Modularity; + +namespace Volo.CmsKit.Admin +{ + [DependsOn( + typeof(AdminApplicationContractsModule), + typeof(AbpHttpClientModule))] + public class AdminHttpApiClientModule : AbpModule + { + public const string RemoteServiceName = "Admin"; + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies( + typeof(AdminApplicationContractsModule).Assembly, + RemoteServiceName + ); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj new file mode 100644 index 0000000000..d36d9ada73 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj @@ -0,0 +1,15 @@ + + + + + + netcoreapp3.1 + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/AdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/AdminController.cs new file mode 100644 index 0000000000..9e66873133 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/AdminController.cs @@ -0,0 +1,13 @@ +using Volo.Abp.AspNetCore.Mvc; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Admin +{ + public abstract class AdminController : AbpController + { + protected AdminController() + { + LocalizationResource = typeof(CmsKitResource); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/AdminHttpApiModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/AdminHttpApiModule.cs new file mode 100644 index 0000000000..09f5312693 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/AdminHttpApiModule.cs @@ -0,0 +1,33 @@ +using Localization.Resources.AbpUi; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Microsoft.Extensions.DependencyInjection; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Admin +{ + [DependsOn( + typeof(AdminApplicationContractsModule), + typeof(AbpAspNetCoreMvcModule))] + public class AdminHttpApiModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(mvcBuilder => + { + mvcBuilder.AddApplicationPartIfNotExists(typeof(AdminHttpApiModule).Assembly); + }); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes(typeof(AbpUiResource)); + }); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/AdminWebAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/AdminWebAutoMapperProfile.cs new file mode 100644 index 0000000000..3bba8ecf13 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/AdminWebAutoMapperProfile.cs @@ -0,0 +1,14 @@ +using AutoMapper; + +namespace Volo.CmsKit.Admin.Web +{ + public class AdminWebAutoMapperProfile : Profile + { + public AdminWebAutoMapperProfile() + { + /* You can configure your AutoMapper mapping configuration here. + * Alternatively, you can split your mapping configurations + * into multiple profile classes for a better organization. */ + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/AdminWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/AdminWebModule.cs new file mode 100644 index 0000000000..dcc18c17b9 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/AdminWebModule.cs @@ -0,0 +1,58 @@ +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.DependencyInjection; +using Volo.CmsKit.Admin.Web.Menus; +using Volo.Abp.AspNetCore.Mvc.Localization; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; +using Volo.Abp.AutoMapper; +using Volo.Abp.Modularity; +using Volo.Abp.UI.Navigation; +using Volo.Abp.VirtualFileSystem; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Admin.Web +{ + [DependsOn( + typeof(AdminHttpApiModule), + typeof(AbpAspNetCoreMvcUiThemeSharedModule), + typeof(AbpAutoMapperModule) + )] + public class AdminWebModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + context.Services.PreConfigure(options => + { + options.AddAssemblyResource(typeof(CmsKitResource), typeof(AdminWebModule).Assembly); + }); + + PreConfigure(mvcBuilder => + { + mvcBuilder.AddApplicationPartIfNotExists(typeof(AdminWebModule).Assembly); + }); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.MenuContributors.Add(new AdminMenuContributor()); + }); + + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + context.Services.AddAutoMapperObjectMapper(); + Configure(options => + { + options.AddMaps(validate: true); + }); + + Configure(options => + { + //Configure authorization. + }); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/AdminMenuContributor.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/AdminMenuContributor.cs new file mode 100644 index 0000000000..8c3110e487 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/AdminMenuContributor.cs @@ -0,0 +1,23 @@ +using System.Threading.Tasks; +using Volo.Abp.UI.Navigation; + +namespace Volo.CmsKit.Admin.Web.Menus +{ + public class AdminMenuContributor : IMenuContributor + { + public async Task ConfigureMenuAsync(MenuConfigurationContext context) + { + if (context.Menu.Name == StandardMenus.Main) + { + await ConfigureMainMenu(context); + } + } + + private Task ConfigureMainMenu(MenuConfigurationContext context) + { + //Add main menu items. + + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/AdminMenus.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/AdminMenus.cs new file mode 100644 index 0000000000..2a2b649414 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Menus/AdminMenus.cs @@ -0,0 +1,11 @@ +namespace Volo.CmsKit.Admin.Web.Menus +{ + public class AdminMenus + { + private const string Prefix = "Admin"; + + //Add your menu items here... + //public const string Home = Prefix + ".MyNewMenuItem"; + + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/Admin/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/Admin/Index.cshtml new file mode 100644 index 0000000000..545243ac28 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/Admin/Index.cshtml @@ -0,0 +1,9 @@ +@page +@using Microsoft.Extensions.Localization +@using Volo.CmsKit.Localization +@model Volo.CmsKit.Admin.Web.Pages.Admin.IndexModel +@inject IStringLocalizer L +@{ +} +

Admin

+

@L["SamplePageMessage"]

diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/Admin/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/Admin/Index.cshtml.cs new file mode 100644 index 0000000000..5d461b1473 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/Admin/Index.cshtml.cs @@ -0,0 +1,9 @@ +namespace Volo.CmsKit.Admin.Web.Pages.Admin +{ + public class IndexModel : AdminPageModel + { + public void OnGet() + { + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/Admin/_ViewImports.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/Admin/_ViewImports.cshtml new file mode 100644 index 0000000000..c1da1f5f10 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/Admin/_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 \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/AdminPageModel.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/AdminPageModel.cs new file mode 100644 index 0000000000..3143ff64e8 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/AdminPageModel.cs @@ -0,0 +1,16 @@ +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Admin.Web.Pages +{ + /* Inherit your PageModel classes from this class. + */ + public abstract class AdminPageModel : AbpPageModel + { + protected AdminPageModel() + { + LocalizationResourceType = typeof(CmsKitResource); + ObjectMapperContext = typeof(AdminWebModule); + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj new file mode 100644 index 0000000000..2211c335db --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj @@ -0,0 +1,36 @@ + + + + + + netcoreapp3.1 + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + true + Library + Volo.CmsKit.Admin.Web + true + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj new file mode 100644 index 0000000000..6cda6e3bc2 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj @@ -0,0 +1,16 @@ + + + + + + netstandard2.0 + + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/PublicPermissionDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/PublicPermissionDefinitionProvider.cs new file mode 100644 index 0000000000..cfe3ec7063 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/PublicPermissionDefinitionProvider.cs @@ -0,0 +1,19 @@ +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Localization; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Public.Permissions +{ + public class PublicPermissionDefinitionProvider : PermissionDefinitionProvider + { + public override void Define(IPermissionDefinitionContext context) + { + var myGroup = context.AddGroup(PublicPermissions.GroupName, L("Permission:Public")); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/PublicPermissions.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/PublicPermissions.cs new file mode 100644 index 0000000000..56e344f989 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/Permissions/PublicPermissions.cs @@ -0,0 +1,14 @@ +using Volo.Abp.Reflection; + +namespace Volo.CmsKit.Public.Permissions +{ + public class PublicPermissions + { + public const string GroupName = "Public"; + + public static string[] GetAll() + { + return ReflectionHelper.GetPublicConstantsRecursively(typeof(PublicPermissions)); + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/PublicApplicationContractsModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/PublicApplicationContractsModule.cs new file mode 100644 index 0000000000..8a4ee7f8e1 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo/CmsKit/Public/PublicApplicationContractsModule.cs @@ -0,0 +1,16 @@ +using Volo.Abp.Application; +using Volo.Abp.Modularity; +using Volo.Abp.Authorization; + +namespace Volo.CmsKit.Public +{ + [DependsOn( + typeof(CmsKitDomainSharedModule), + typeof(AbpDddApplicationContractsModule), + typeof(AbpAuthorizationModule) + )] + public class PublicApplicationContractsModule : AbpModule + { + + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj new file mode 100644 index 0000000000..8f3233172a --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj @@ -0,0 +1,17 @@ + + + + + + netstandard2.0 + + + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicAppService.cs new file mode 100644 index 0000000000..5593482811 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicAppService.cs @@ -0,0 +1,14 @@ +using Volo.Abp.Application.Services; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Public +{ + public abstract class PublicAppService : ApplicationService + { + protected PublicAppService() + { + LocalizationResource = typeof(CmsKitResource); + ObjectMapperContext = typeof(PublicApplicationModule); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs new file mode 100644 index 0000000000..d1249f29b2 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationAutoMapperProfile.cs @@ -0,0 +1,14 @@ +using AutoMapper; + +namespace Volo.CmsKit.Public +{ + public class PublicApplicationAutoMapperProfile : Profile + { + public PublicApplicationAutoMapperProfile() + { + /* You can configure your AutoMapper mapping configuration here. + * Alternatively, you can split your mapping configurations + * into multiple profile classes for a better organization. */ + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationModule.cs new file mode 100644 index 0000000000..4ad2dc8cf5 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/PublicApplicationModule.cs @@ -0,0 +1,25 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AutoMapper; +using Volo.Abp.Modularity; +using Volo.Abp.Application; + +namespace Volo.CmsKit.Public +{ + [DependsOn( + typeof(CmsKitDomainModule), + typeof(PublicApplicationContractsModule), + typeof(AbpDddApplicationModule), + typeof(AbpAutoMapperModule) + )] + public class PublicApplicationModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddAutoMapperObjectMapper(); + Configure(options => + { + options.AddMaps(validate: true); + }); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj new file mode 100644 index 0000000000..fa84ffe86b --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj @@ -0,0 +1,15 @@ + + + + + + netstandard2.0 + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo/CmsKit/Public/PublicHttpApiClientModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo/CmsKit/Public/PublicHttpApiClientModule.cs new file mode 100644 index 0000000000..79a753eb9b --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo/CmsKit/Public/PublicHttpApiClientModule.cs @@ -0,0 +1,22 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Http.Client; +using Volo.Abp.Modularity; + +namespace Volo.CmsKit.Public +{ + [DependsOn( + typeof(PublicApplicationContractsModule), + typeof(AbpHttpClientModule))] + public class PublicHttpApiClientModule : AbpModule + { + public const string RemoteServiceName = "Public"; + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies( + typeof(PublicApplicationContractsModule).Assembly, + RemoteServiceName + ); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj new file mode 100644 index 0000000000..c96eb44bb3 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj @@ -0,0 +1,15 @@ + + + + + + netcoreapp3.1 + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/PublicController.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/PublicController.cs new file mode 100644 index 0000000000..5683e42e44 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/PublicController.cs @@ -0,0 +1,13 @@ +using Volo.Abp.AspNetCore.Mvc; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Public +{ + public abstract class PublicController : AbpController + { + protected PublicController() + { + LocalizationResource = typeof(CmsKitResource); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/PublicHttpApiModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/PublicHttpApiModule.cs new file mode 100644 index 0000000000..9f3d25d366 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo/CmsKit/Public/PublicHttpApiModule.cs @@ -0,0 +1,33 @@ +using Localization.Resources.AbpUi; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Microsoft.Extensions.DependencyInjection; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Public +{ + [DependsOn( + typeof(PublicApplicationContractsModule), + typeof(AbpAspNetCoreMvcModule))] + public class PublicHttpApiModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(mvcBuilder => + { + mvcBuilder.AddApplicationPartIfNotExists(typeof(PublicHttpApiModule).Assembly); + }); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes(typeof(AbpUiResource)); + }); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/PublicMenuContributor.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/PublicMenuContributor.cs new file mode 100644 index 0000000000..b337a9504c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/PublicMenuContributor.cs @@ -0,0 +1,23 @@ +using System.Threading.Tasks; +using Volo.Abp.UI.Navigation; + +namespace Volo.CmsKit.Public.Web.Menus +{ + public class PublicMenuContributor : IMenuContributor + { + public async Task ConfigureMenuAsync(MenuConfigurationContext context) + { + if (context.Menu.Name == StandardMenus.Main) + { + await ConfigureMainMenu(context); + } + } + + private Task ConfigureMainMenu(MenuConfigurationContext context) + { + //Add main menu items. + + return Task.CompletedTask; + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/PublicMenus.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/PublicMenus.cs new file mode 100644 index 0000000000..f4809ec988 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/PublicMenus.cs @@ -0,0 +1,11 @@ +namespace Volo.CmsKit.Public.Web.Menus +{ + public class PublicMenus + { + private const string Prefix = "Public"; + + //Add your menu items here... + //public const string Home = Prefix + ".MyNewMenuItem"; + + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/Index.cshtml new file mode 100644 index 0000000000..b09a38fd87 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/Index.cshtml @@ -0,0 +1,9 @@ +@page +@using Microsoft.Extensions.Localization +@using Volo.CmsKit.Localization +@model Volo.CmsKit.Public.Web.Pages.Public.IndexModel +@inject IStringLocalizer L +@{ +} +

Public

+

@L["SamplePageMessage"]

diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/Index.cshtml.cs new file mode 100644 index 0000000000..2c16293ae7 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/Index.cshtml.cs @@ -0,0 +1,9 @@ +namespace Volo.CmsKit.Public.Web.Pages.Public +{ + public class IndexModel : PublicPageModel + { + public void OnGet() + { + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/_ViewImports.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/_ViewImports.cshtml new file mode 100644 index 0000000000..c1da1f5f10 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/_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 \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/PublicPageModel.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/PublicPageModel.cs new file mode 100644 index 0000000000..a2d4d13b9f --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/PublicPageModel.cs @@ -0,0 +1,16 @@ +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Public.Web.Pages +{ + /* Inherit your PageModel classes from this class. + */ + public abstract class PublicPageModel : AbpPageModel + { + protected PublicPageModel() + { + LocalizationResourceType = typeof(CmsKitResource); + ObjectMapperContext = typeof(PublicWebModule); + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebAutoMapperProfile.cs new file mode 100644 index 0000000000..35bf9f709e --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebAutoMapperProfile.cs @@ -0,0 +1,14 @@ +using AutoMapper; + +namespace Volo.CmsKit.Public.Web +{ + public class PublicWebAutoMapperProfile : Profile + { + public PublicWebAutoMapperProfile() + { + /* You can configure your AutoMapper mapping configuration here. + * Alternatively, you can split your mapping configurations + * into multiple profile classes for a better organization. */ + } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebModule.cs new file mode 100644 index 0000000000..a512f37bdd --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/PublicWebModule.cs @@ -0,0 +1,58 @@ +using Microsoft.AspNetCore.Mvc.RazorPages; +using Microsoft.Extensions.DependencyInjection; +using Volo.CmsKit.Public.Web.Menus; +using Volo.Abp.AspNetCore.Mvc.Localization; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; +using Volo.Abp.AutoMapper; +using Volo.Abp.Modularity; +using Volo.Abp.UI.Navigation; +using Volo.Abp.VirtualFileSystem; +using Volo.CmsKit.Localization; + +namespace Volo.CmsKit.Public.Web +{ + [DependsOn( + typeof(PublicHttpApiModule), + typeof(AbpAspNetCoreMvcUiThemeSharedModule), + typeof(AbpAutoMapperModule) + )] + public class PublicWebModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + context.Services.PreConfigure(options => + { + options.AddAssemblyResource(typeof(CmsKitResource), typeof(PublicWebModule).Assembly); + }); + + PreConfigure(mvcBuilder => + { + mvcBuilder.AddApplicationPartIfNotExists(typeof(PublicWebModule).Assembly); + }); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.MenuContributors.Add(new PublicMenuContributor()); + }); + + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + context.Services.AddAutoMapperObjectMapper(); + Configure(options => + { + options.AddMaps(validate: true); + }); + + Configure(options => + { + //Configure authorization. + }); + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj new file mode 100644 index 0000000000..b5b79e923b --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj @@ -0,0 +1,36 @@ + + + + + + netcoreapp3.1 + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + true + Library + Volo.CmsKit.Public.Web + true + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj index 5a8b4b074d..81f9a513b1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj @@ -33,8 +33,4 @@ - - - -