diff --git a/modules/cms-kit/Volo.CmsKit.sln b/modules/cms-kit/Volo.CmsKit.sln
index 478e5c57e8..9874845fd1 100644
--- a/modules/cms-kit/Volo.CmsKit.sln
+++ b/modules/cms-kit/Volo.CmsKit.sln
@@ -49,6 +49,34 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Host.Shared", "
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Web.Unified", "host\Volo.CmsKit.Web.Unified\Volo.CmsKit.Web.Unified.csproj", "{3D872C41-E226-45C8-89C1-9D3DBD7C73F2}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unified", "unified", "{963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}"
+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
@@ -135,31 +163,85 @@ 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
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {D64C1577-4929-4B60-939E-96DE1534891A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {BD65D04F-08D5-40C1-8C24-77CA0BACB877} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {78040F9E-3501-4A40-82DF-00A597710F35} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {F1C58097-4C08-4D88-8976-6B3389391481} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {077AA5F8-8B61-420C-A6B5-0150A66FDB34} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {36E2735F-CEAB-44C8-A6D1-2CDAFF399751} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{C5BB573D-3030-4BCB-88B7-F6A85C32766C} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{527F645C-C1FC-406E-8479-81386C8ECF13} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{E60895E5-79C4-447D-88B7-85CB5BA336A4} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{90CB5DC4-C040-45C7-8900-9688B26405BC} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{37B135B0-DAFE-4616-B25C-1BDF32FC44A2} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {3B7B6317-1B85-4164-8E11-75574F80AE17} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
{73513786-B6C6-4A21-89C5-0FBDD0A46107} = {E400416D-2895-4512-9D17-90681EEC7E0A}
{690203F4-3CD5-4569-88D9-EE831EEA5F5F} = {E400416D-2895-4512-9D17-90681EEC7E0A}
{F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB} = {E400416D-2895-4512-9D17-90681EEC7E0A}
{3D872C41-E226-45C8-89C1-9D3DBD7C73F2} = {E400416D-2895-4512-9D17-90681EEC7E0A}
+ {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
+ {F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
+ {D64C1577-4929-4B60-939E-96DE1534891A} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
+ {F1C58097-4C08-4D88-8976-6B3389391481} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
+ {0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
+ {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
+ {78040F9E-3501-4A40-82DF-00A597710F35} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}
+ {BD65D04F-08D5-40C1-8C24-77CA0BACB877} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}
+ {077AA5F8-8B61-420C-A6B5-0150A66FDB34} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}
+ {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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..ddc9a68e4d
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ 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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ 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..b1fcd82e99
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+ 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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..e38c564555
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ 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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..d3df3b3538
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ 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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..82dc3e4544
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ netcoreapp3.1
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ true
+ Library
+ Volo.CmsKit.Admin.Web
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj
index 3e557b3ebd..ddc9a68e4d 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj
@@ -1,15 +1,16 @@
-
+
+
netstandard2.0
- Volo.CmsKit
+
-
-
+
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/CmsKitApplicationContractsModule.cs b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/CmsKitApplicationContractsModule.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application.Contracts/CmsKitApplicationContractsModule.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/CmsKitApplicationContractsModule.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Permissions/CmsKitPermissionDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPermissionDefinitionProvider.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Permissions/CmsKitPermissionDefinitionProvider.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPermissionDefinitionProvider.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Permissions/CmsKitPermissions.cs b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPermissions.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Permissions/CmsKitPermissions.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Permissions/CmsKitPermissions.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Reactions/CreateReactionDto.cs b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Reactions/CreateReactionDto.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Reactions/CreateReactionDto.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Reactions/CreateReactionDto.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Reactions/GetReactionResultDto.cs b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Reactions/GetReactionResultDto.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Reactions/GetReactionResultDto.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Reactions/GetReactionResultDto.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Reactions/IReactionAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Reactions/IReactionAppService.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Reactions/IReactionAppService.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Reactions/IReactionAppService.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Reactions/ReactionCountDto.cs b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Reactions/ReactionCountDto.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Reactions/ReactionCountDto.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Reactions/ReactionCountDto.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Samples/ISampleAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Samples/ISampleAppService.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Samples/ISampleAppService.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Samples/ISampleAppService.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Samples/SampleDto.cs b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Samples/SampleDto.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Samples/SampleDto.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo/CmsKit/Samples/SampleDto.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Application/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Application/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Application/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Application/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj
index 7112727f54..7a735222e2 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj
@@ -1,15 +1,16 @@
-
+
+
netstandard2.0
- Volo.CmsKit
+
-
-
+
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/CmsKitAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/CmsKitAppService.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application/CmsKitAppService.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/CmsKitAppService.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/CmsKitApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/CmsKitApplicationAutoMapperProfile.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application/CmsKitApplicationAutoMapperProfile.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/CmsKitApplicationAutoMapperProfile.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/CmsKitApplicationModule.cs b/modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/CmsKitApplicationModule.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application/CmsKitApplicationModule.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/CmsKitApplicationModule.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/Reactions/ReactionAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/Reactions/ReactionAppService.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application/Reactions/ReactionAppService.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/Reactions/ReactionAppService.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/Samples/SampleAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/Samples/SampleAppService.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Application/Samples/SampleAppService.cs
rename to modules/cms-kit/src/Volo.CmsKit.Application/Volo/CmsKit/Samples/SampleAppService.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj
index 2ca97a1bb8..bedd23c081 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj
@@ -1,15 +1,16 @@
-
+
+
netstandard2.0
- Volo.CmsKit
true
+
-
+
@@ -17,8 +18,8 @@
-
-
+
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/CmsKitDomainSharedModule.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitDomainSharedModule.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/CmsKitDomainSharedModule.cs
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitDomainSharedModule.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/CmsKitErrorCodes.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/CmsKitErrorCodes.cs
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitErrorCodes.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/cs.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/cs.json
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/cs.json
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/cs.json
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/en.json
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/en.json
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/en.json
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/pl-PL.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/pl-PL.json
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/pl-PL.json
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/pl-PL.json
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/pt-BR.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/pt-BR.json
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/pt-BR.json
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/pt-BR.json
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/sl.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/sl.json
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/sl.json
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/sl.json
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/tr.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/tr.json
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/tr.json
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/tr.json
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/vi.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/vi.json
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/vi.json
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/vi.json
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/zh-Hans.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/zh-Hans.json
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/zh-Hans.json
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/zh-Hans.json
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/zh-Hant.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/zh-Hant.json
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKit/zh-Hant.json
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKit/zh-Hant.json
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKitResource.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKitResource.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Localization/CmsKitResource.cs
rename to modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/CmsKitResource.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Domain/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Domain/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
index a39722c3e2..f016bed623 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
@@ -1,14 +1,15 @@
-
+
+
netstandard2.0
- Volo.CmsKit
+
-
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/CmsKitDbProperties.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDbProperties.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain/CmsKitDbProperties.cs
rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDbProperties.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/CmsKitDomainModule.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain/CmsKitDomainModule.cs
rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Reactions/Reaction.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/Reaction.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain/Reactions/Reaction.cs
rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Reactions/Reaction.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Settings/CmsKitSettingDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain/Settings/CmsKitSettingDefinitionProvider.cs
rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Settings/CmsKitSettings.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettings.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.Domain/Settings/CmsKitSettings.cs
rename to modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettings.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj
index fe4188aff0..de174d0afd 100644
--- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj
@@ -1,15 +1,16 @@
-
+
+
netstandard2.0
- Volo.CmsKit
+
-
+
-
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/CmsKitDbContext.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContext.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/CmsKitDbContext.cs
rename to modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContext.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs
rename to modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitDbContextModelCreatingExtensions.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/CmsKitEntityFrameworkCoreModule.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitEntityFrameworkCoreModule.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/CmsKitEntityFrameworkCoreModule.cs
rename to modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitEntityFrameworkCoreModule.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/CmsKitModelBuilderConfigurationOptions.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitModelBuilderConfigurationOptions.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/CmsKitModelBuilderConfigurationOptions.cs
rename to modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/CmsKitModelBuilderConfigurationOptions.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/ICmsKitDbContext.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/ICmsKitDbContext.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/EntityFrameworkCore/ICmsKitDbContext.cs
rename to modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/EntityFrameworkCore/ICmsKitDbContext.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj
index 408e6fe7fe..aaca64503f 100644
--- a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj
@@ -1,14 +1,15 @@
-
+
+
netstandard2.0
- Volo.CmsKit
+
-
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/CmsKitHttpApiClientModule.cs b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo/CmsKit/CmsKitHttpApiClientModule.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/CmsKitHttpApiClientModule.cs
rename to modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo/CmsKit/CmsKitHttpApiClientModule.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.HttpApi/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.HttpApi/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj
index 85d1e24fae..5df70b920a 100644
--- a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj
@@ -1,14 +1,15 @@
-
+
+
netcoreapp3.1
- Volo.CmsKit
+
-
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/CmsKitController.cs b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo/CmsKit/CmsKitController.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.HttpApi/CmsKitController.cs
rename to modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo/CmsKit/CmsKitController.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/CmsKitHttpApiModule.cs b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo/CmsKit/CmsKitHttpApiModule.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.HttpApi/CmsKitHttpApiModule.cs
rename to modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo/CmsKit/CmsKitHttpApiModule.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Samples/SampleController.cs b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo/CmsKit/Samples/SampleController.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.HttpApi/Samples/SampleController.cs
rename to modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo/CmsKit/Samples/SampleController.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.MongoDB/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.MongoDB/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj
index ab5743362d..079112e5b2 100644
--- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj
@@ -1,14 +1,15 @@
-
+
+
netcoreapp3.1
- Volo.CmsKit
+
-
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/CmsKitMongoDbContext.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbContext.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/CmsKitMongoDbContext.cs
rename to modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbContext.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/CmsKitMongoDbContextExtensions.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbContextExtensions.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/CmsKitMongoDbContextExtensions.cs
rename to modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbContextExtensions.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/CmsKitMongoDbModule.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbModule.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/CmsKitMongoDbModule.cs
rename to modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoDbModule.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/CmsKitMongoModelBuilderConfigurationOptions.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoModelBuilderConfigurationOptions.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/CmsKitMongoModelBuilderConfigurationOptions.cs
rename to modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/CmsKitMongoModelBuilderConfigurationOptions.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/ICmsKitMongoDbContext.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/ICmsKitMongoDbContext.cs
similarity index 100%
rename from modules/cms-kit/src/Volo.CmsKit.MongoDB/MongoDB/ICmsKitMongoDbContext.cs
rename to modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/ICmsKitMongoDbContext.cs
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..ddc9a68e4d
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ 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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Public.Application/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Public.Application/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..e7a99e98b4
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+ 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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..f7a1e8cb62
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ 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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..32cfc093b5
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+ 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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Public.Web/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..1068695c56
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ 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/FodyWeavers.xml b/modules/cms-kit/src/Volo.CmsKit.Web/FodyWeavers.xml
new file mode 100644
index 0000000000..be0de3a908
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Web/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/FodyWeavers.xsd b/modules/cms-kit/src/Volo.CmsKit.Web/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/modules/cms-kit/src/Volo.CmsKit.Web/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
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..d876642970 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
@@ -1,6 +1,7 @@
-
+
+
netcoreapp3.1
@@ -12,8 +13,8 @@
-
-
+
+
@@ -27,14 +28,8 @@
-
-
-
-
-
-