From dff9924e069c696dd8cb9e7f5eec1c42eca3f06e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 24 Dec 2018 17:32:59 +0300 Subject: [PATCH] #629 moved admin codes to new projects --- modules/docs/Volo.Docs.sln | 35 +++++++ ...lo.Docs.Admin.Application.Contracts.csproj | 17 ++++ .../DocsAdminApplicationContractsModule.cs | 14 +++ .../Docs/Admin}/Projects/CreateProjectDto.cs | 2 +- .../Admin/Projects/IProjectAdminAppService.cs | 20 ++++ .../Volo/Docs/Admin/Projects/ProjectDto.cs | 30 ++++++ .../Docs/Admin}/Projects/UpdateProjectDto.cs | 4 +- .../Volo.Docs.Admin.Application.csproj | 19 ++++ .../DocsAdminApplicationAutoMapperProfile.cs | 14 +++ .../Docs/Admin/DocsAdminApplicationModule.cs | 22 +++++ .../Admin/Projects/ProjectAdminAppService.cs | 95 +++++++++++++++++++ .../Volo.Docs.Admin.HttpApi.Client.csproj | 16 ++++ .../Docs/Admin/DocsHttpApiClientModule.cs | 11 +++ .../Volo.Docs.Admin.HttpApi.csproj | 17 ++++ .../Volo/Docs/Admin/DocsAdminHttpApiModule.cs | 14 +++ .../Projects/DocsAdminProjectController.cs | 50 ++++++++++ .../DocsAdminWebAutoMapperProfile.cs | 13 +++ .../Volo.Docs.Admin.Web/DocsAdminWebModule.cs | 37 ++++++++ .../Properties/launchSettings.json | 27 ++++++ .../Volo.Docs.Admin.Web.csproj | 55 +++++++++++ .../Volo/Docs/Projects/IProjectAppService.cs | 6 -- .../Volo/Docs/Projects/ProjectAppService.cs | 54 ----------- .../Volo/Docs/Projects/IProjectRepository.cs | 5 + .../Docs/Projects/EfCoreProjectRepository.cs | 17 ++++ .../Docs/Projects/DocsProjectController.cs | 15 --- 25 files changed, 530 insertions(+), 79 deletions(-) create mode 100644 modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj create mode 100644 modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminApplicationContractsModule.cs rename modules/docs/src/{Volo.Docs.Application.Contracts/Volo/Docs => Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin}/Projects/CreateProjectDto.cs (94%) create mode 100644 modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/IProjectAdminAppService.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/ProjectDto.cs rename modules/docs/src/{Volo.Docs.Application.Contracts/Volo/Docs => Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin}/Projects/UpdateProjectDto.cs (87%) create mode 100644 modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj create mode 100644 modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationModule.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj create mode 100644 modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsHttpApiClientModule.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj create mode 100644 modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocsAdminHttpApiModule.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/Projects/DocsAdminProjectController.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.Web/Properties/launchSettings.json create mode 100644 modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj diff --git a/modules/docs/Volo.Docs.sln b/modules/docs/Volo.Docs.sln index 8d58433a93..3fe7cc736f 100644 --- a/modules/docs/Volo.Docs.sln +++ b/modules/docs/Volo.Docs.sln @@ -33,6 +33,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "admin-app", "admin-app", "{ EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "public-app", "public-app", "{8B0CDFC9-E313-4323-9390-59CFFAAC60B5}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Admin.Application.Contracts", "src\Volo.Docs.Admin.Application.Contracts\Volo.Docs.Admin.Application.Contracts.csproj", "{37D483C8-400B-4127-A6D0-2EE4E80CB696}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Admin.Application", "src\Volo.Docs.Admin.Application\Volo.Docs.Admin.Application.csproj", "{823C51A7-40AB-45D8-8FB8-F212AF7E45F2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Admin.HttpApi", "src\Volo.Docs.Admin.HttpApi\Volo.Docs.Admin.HttpApi.csproj", "{262F38DB-62AF-427F-96E2-C6385C5AB695}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Admin.HttpApi.Client", "src\Volo.Docs.Admin.HttpApi.Client\Volo.Docs.Admin.HttpApi.Client.csproj", "{81EE378A-0DE1-47BA-86D9-08EF6317BB95}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Admin.Web", "src\Volo.Docs.Admin.Web\Volo.Docs.Admin.Web.csproj", "{116A6145-9D66-4867-B3EF-A464FAC47946}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -79,6 +89,26 @@ Global {A5F88BCB-6B22-4E2D-AE89-AEF1E3DC727A}.Debug|Any CPU.Build.0 = Debug|Any CPU {A5F88BCB-6B22-4E2D-AE89-AEF1E3DC727A}.Release|Any CPU.ActiveCfg = Release|Any CPU {A5F88BCB-6B22-4E2D-AE89-AEF1E3DC727A}.Release|Any CPU.Build.0 = Release|Any CPU + {37D483C8-400B-4127-A6D0-2EE4E80CB696}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {37D483C8-400B-4127-A6D0-2EE4E80CB696}.Debug|Any CPU.Build.0 = Debug|Any CPU + {37D483C8-400B-4127-A6D0-2EE4E80CB696}.Release|Any CPU.ActiveCfg = Release|Any CPU + {37D483C8-400B-4127-A6D0-2EE4E80CB696}.Release|Any CPU.Build.0 = Release|Any CPU + {823C51A7-40AB-45D8-8FB8-F212AF7E45F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {823C51A7-40AB-45D8-8FB8-F212AF7E45F2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {823C51A7-40AB-45D8-8FB8-F212AF7E45F2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {823C51A7-40AB-45D8-8FB8-F212AF7E45F2}.Release|Any CPU.Build.0 = Release|Any CPU + {262F38DB-62AF-427F-96E2-C6385C5AB695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {262F38DB-62AF-427F-96E2-C6385C5AB695}.Debug|Any CPU.Build.0 = Debug|Any CPU + {262F38DB-62AF-427F-96E2-C6385C5AB695}.Release|Any CPU.ActiveCfg = Release|Any CPU + {262F38DB-62AF-427F-96E2-C6385C5AB695}.Release|Any CPU.Build.0 = Release|Any CPU + {81EE378A-0DE1-47BA-86D9-08EF6317BB95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81EE378A-0DE1-47BA-86D9-08EF6317BB95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81EE378A-0DE1-47BA-86D9-08EF6317BB95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81EE378A-0DE1-47BA-86D9-08EF6317BB95}.Release|Any CPU.Build.0 = Release|Any CPU + {116A6145-9D66-4867-B3EF-A464FAC47946}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {116A6145-9D66-4867-B3EF-A464FAC47946}.Debug|Any CPU.Build.0 = Debug|Any CPU + {116A6145-9D66-4867-B3EF-A464FAC47946}.Release|Any CPU.ActiveCfg = Release|Any CPU + {116A6145-9D66-4867-B3EF-A464FAC47946}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -97,6 +127,11 @@ Global {A982A58E-1E92-4764-9F56-39E7AABB8556} = {42416152-5BAB-4706-93A6-57A19E71FE14} {BCA19441-17E9-43E6-AED1-15344D18F967} = {42416152-5BAB-4706-93A6-57A19E71FE14} {8B0CDFC9-E313-4323-9390-59CFFAAC60B5} = {42416152-5BAB-4706-93A6-57A19E71FE14} + {37D483C8-400B-4127-A6D0-2EE4E80CB696} = {BCA19441-17E9-43E6-AED1-15344D18F967} + {823C51A7-40AB-45D8-8FB8-F212AF7E45F2} = {BCA19441-17E9-43E6-AED1-15344D18F967} + {262F38DB-62AF-427F-96E2-C6385C5AB695} = {BCA19441-17E9-43E6-AED1-15344D18F967} + {81EE378A-0DE1-47BA-86D9-08EF6317BB95} = {BCA19441-17E9-43E6-AED1-15344D18F967} + {116A6145-9D66-4867-B3EF-A464FAC47946} = {BCA19441-17E9-43E6-AED1-15344D18F967} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {13691265-2547-4FFF-B757-E8FACB05679D} diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj new file mode 100644 index 0000000000..0835730d57 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj @@ -0,0 +1,17 @@ + + + + + + netstandard2.0 + Volo.Docs.Admin.Application.Contracts + Volo.Docs.Admin.Application.Contracts + + + + + + + + + diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminApplicationContractsModule.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminApplicationContractsModule.cs new file mode 100644 index 0000000000..547fb6bf71 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminApplicationContractsModule.cs @@ -0,0 +1,14 @@ +using Volo.Abp.Application; +using Volo.Abp.Modularity; + +namespace Volo.Docs.Admin +{ + [DependsOn( + typeof(DocsDomainSharedModule), + typeof(AbpDddApplicationModule) + )] + public class DocsAdminApplicationContractsModule : AbpModule + { + + } +} diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/CreateProjectDto.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/CreateProjectDto.cs similarity index 94% rename from modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/CreateProjectDto.cs rename to modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/CreateProjectDto.cs index cb02c579a3..2427d2d51f 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/CreateProjectDto.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/CreateProjectDto.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -namespace Volo.Docs.Projects +namespace Volo.Docs.Admin.Projects { public class CreateProjectDto { diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/IProjectAdminAppService.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/IProjectAdminAppService.cs new file mode 100644 index 0000000000..34b607689c --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/IProjectAdminAppService.cs @@ -0,0 +1,20 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Volo.Docs.Admin.Projects +{ + public interface IProjectAdminAppService : IApplicationService + { + Task> GetListAsync(PagedAndSortedResultRequestDto input); + + Task GetAsync(Guid id); + + Task CreateAsync(CreateProjectDto input); + + Task UpdateAsync(Guid id, UpdateProjectDto input); + + Task DeleteAsync(Guid id); + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/ProjectDto.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/ProjectDto.cs new file mode 100644 index 0000000000..c5a3bd6eb2 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/ProjectDto.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using Volo.Abp.Application.Dtos; + +namespace Volo.Docs.Admin.Projects +{ + [Serializable] + public class ProjectDto : EntityDto + { + public string Name { get; set; } + + public string ShortName { get; set; } + + public string Format { get; set; } + + public string DefaultDocumentName { get; set; } + + public string NavigationDocumentName { get; set; } + + public string MinimumVersion { get; set; } + + public string MainWebsiteUrl { get; set; } + + public string LatestVersionBranchName { get; set; } + + public string DocumentStoreType { get; set; } + + public Dictionary ExtraProperties { get; set; } + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/UpdateProjectDto.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/UpdateProjectDto.cs similarity index 87% rename from modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/UpdateProjectDto.cs rename to modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/UpdateProjectDto.cs index b16f1916e4..b2ac8472ae 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/UpdateProjectDto.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/UpdateProjectDto.cs @@ -1,8 +1,6 @@ -using System; using System.Collections.Generic; -using Volo.Abp.Application.Dtos; -namespace Volo.Docs.Projects +namespace Volo.Docs.Admin.Projects { public class UpdateProjectDto { diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj new file mode 100644 index 0000000000..73d2afc26b --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj @@ -0,0 +1,19 @@ + + + + + + netstandard2.0 + Volo.Docs.Admin.Application + Volo.Docs.Admin.Application + + + + + + + + + + + diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs new file mode 100644 index 0000000000..e51cce664b --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs @@ -0,0 +1,14 @@ +using AutoMapper; +using Volo.Docs.Admin.Projects; +using Volo.Docs.Projects; + +namespace Volo.Docs.Admin +{ + public class DocsAdminApplicationAutoMapperProfile : Profile + { + public DocsAdminApplicationAutoMapperProfile() + { + CreateMap(); + } + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationModule.cs b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationModule.cs new file mode 100644 index 0000000000..1771b00cdb --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationModule.cs @@ -0,0 +1,22 @@ +using Volo.Abp.AutoMapper; +using Volo.Abp.Caching; +using Volo.Abp.Modularity; + +namespace Volo.Docs.Admin +{ + [DependsOn( + typeof(DocsDomainModule), + typeof(DocsAdminApplicationContractsModule), + typeof(AbpCachingModule), + typeof(AbpAutoMapperModule))] + public class DocsAdminApplicationModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.AddProfile(validate: true); + }); + } + } +} diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs new file mode 100644 index 0000000000..25e9754140 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; +using Volo.Abp.Guids; +using Volo.Docs.Projects; + +namespace Volo.Docs.Admin.Projects +{ + public class ProjectAdminAppService : ApplicationService, IProjectAdminAppService + { + private readonly IProjectRepository _projectRepository; + private readonly IGuidGenerator _guidGenerator; + + public ProjectAdminAppService( + IProjectRepository projectRepository, IGuidGenerator guidGenerator) + { + _projectRepository = projectRepository; + _guidGenerator = guidGenerator; + } + + public async Task> GetListAsync(PagedAndSortedResultRequestDto input) + { + var blogs = await _projectRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount); + + var totalCount = await _projectRepository.GetTotalProjectCount(); + + var dtos = ObjectMapper.Map, List>(blogs); + + return new PagedResultDto(totalCount, dtos); + } + + public async Task GetAsync(Guid id) + { + var project = await _projectRepository.GetAsync(id); + + return ObjectMapper.Map(project); + } + + public async Task CreateAsync(CreateProjectDto input) + { + var project = new Project(_guidGenerator.Create(), + input.Name, + input.ShortName, + input.DocumentStoreType, + input.Format, + input.DefaultDocumentName, + input.NavigationDocumentName + ) + { + MinimumVersion = input.MinimumVersion, + MainWebsiteUrl = input.MainWebsiteUrl, + LatestVersionBranchName = input.LatestVersionBranchName + }; + + foreach (var extraProperty in input.ExtraProperties) + { + project.ExtraProperties.Add(extraProperty.Key,extraProperty.Value); + } + + project = await _projectRepository.InsertAsync(project); + + return ObjectMapper.Map(project); + } + + public async Task UpdateAsync(Guid id, UpdateProjectDto input) + { + var project = await _projectRepository.GetAsync(id); + + project.SetName(input.Name); + project.SetFormat(input.Format); + project.SetNavigationDocumentName(input.NavigationDocumentName); + project.SetDefaultDocumentName(input.DefaultDocumentName); + + project.MinimumVersion = input.MinimumVersion; + project.MainWebsiteUrl = input.MainWebsiteUrl; + project.LatestVersionBranchName = input.LatestVersionBranchName; + + foreach (var extraProperty in input.ExtraProperties) + { + project.ExtraProperties[extraProperty.Key] = extraProperty.Value; + } + + project = await _projectRepository.UpdateAsync(project); + + return ObjectMapper.Map(project); + } + + public async Task DeleteAsync(Guid id) + { + await _projectRepository.DeleteAsync(id); + } + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj new file mode 100644 index 0000000000..c76ce2895c --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj @@ -0,0 +1,16 @@ + + + + + + netstandard2.0 + Volo.Docs.Admin.HttpApi.Client + Volo.Docs.Admin.HttpApi.Client + + + + + + + + diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsHttpApiClientModule.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsHttpApiClientModule.cs new file mode 100644 index 0000000000..5a2e66e5ca --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo/Docs/Admin/DocsHttpApiClientModule.cs @@ -0,0 +1,11 @@ +using Volo.Abp.Modularity; + +namespace Volo.Docs.Admin +{ + [DependsOn( + typeof(DocsAdminApplicationContractsModule))] + public class DocsAdminHttpApiClientModule : AbpModule + { + + } +} diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj new file mode 100644 index 0000000000..cea70211b2 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj @@ -0,0 +1,17 @@ + + + + + + netstandard2.0 + Volo.Docs.Admin.HttpApi + Volo.Docs.Admin.HttpApi + + + + + + + + + diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocsAdminHttpApiModule.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocsAdminHttpApiModule.cs new file mode 100644 index 0000000000..46321bbcfc --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocsAdminHttpApiModule.cs @@ -0,0 +1,14 @@ +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Modularity; + +namespace Volo.Docs.Admin +{ + [DependsOn( + typeof(DocsAdminApplicationContractsModule), + typeof(AbpAspNetCoreMvcModule) + )] + public class DocsAdminHttpApiModule : AbpModule + { + + } +} diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/Projects/DocsAdminProjectController.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/Projects/DocsAdminProjectController.cs new file mode 100644 index 0000000000..58f3f23758 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/Projects/DocsAdminProjectController.cs @@ -0,0 +1,50 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp; +using Volo.Abp.Application.Dtos; +using Volo.Abp.AspNetCore.Mvc; + +namespace Volo.Docs.Admin.Projects +{ + [RemoteService] + [Area("docs")] + [ControllerName("Project")] + [Route("api/docs/admin/projects")] + public class DocsAdminProjectController : AbpController, IProjectAdminAppService + { + protected IProjectAdminAppService ProjectAppService { get; } + + public DocsAdminProjectController(IProjectAdminAppService projectAppService) + { + ProjectAppService = projectAppService; + } + + public Task> GetListAsync(PagedAndSortedResultRequestDto input) + { + return ProjectAppService.GetListAsync(input); + } + + [HttpGet] + [Route("{id}")] + public Task GetAsync(Guid id) + { + return ProjectAppService.GetAsync(id); + } + + public Task CreateAsync(CreateProjectDto input) + { + return ProjectAppService.CreateAsync(input); + } + + public Task UpdateAsync(Guid id, UpdateProjectDto input) + { + return ProjectAppService.UpdateAsync(id, input); + } + + public Task DeleteAsync(Guid id) + { + return ProjectAppService.DeleteAsync(id); + } + } +} diff --git a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs new file mode 100644 index 0000000000..0b9d5ebd3b --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs @@ -0,0 +1,13 @@ +using AutoMapper; +using Volo.Abp.AutoMapper; + +namespace Volo.Docs.Admin +{ + public class DocsAdminWebAutoMapperProfile : Profile + { + public DocsAdminWebAutoMapperProfile() + { + + } + } +} diff --git a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs new file mode 100644 index 0000000000..a443865676 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs @@ -0,0 +1,37 @@ +using Volo.Abp.AspNetCore.Mvc.Localization; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap; +using Volo.Abp.AutoMapper; +using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; +using Volo.Docs.Localization; + +namespace Volo.Docs.Admin +{ + [DependsOn( + typeof(DocsAdminHttpApiModule), + typeof(AbpAspNetCoreMvcUiBootstrapModule) + )] + public class DocsAdminWebModule : AbpModule + { + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(options => + { + options.AddAssemblyResource(typeof(DocsResource), typeof(DocsAdminWebModule).Assembly); + }); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded("Volo.Docs.Admin"); + }); + + Configure(options => + { + options.AddProfile(validate: true); + }); + } + } +} diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Properties/launchSettings.json b/modules/docs/src/Volo.Docs.Admin.Web/Properties/launchSettings.json new file mode 100644 index 0000000000..b0ed7371d0 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Web/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:51397", + "sslPort": 44346 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "Volo.Docs.Admin.Web": { + "commandName": "Project", + "launchBrowser": true, + "applicationUrl": "https://localhost:5001;http://localhost:5000", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj new file mode 100644 index 0000000000..b5b4569789 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj @@ -0,0 +1,55 @@ + + + + + + netstandard2.0 + Volo.Docs.Admin.Web + Volo.Docs.Admin.Web + Library + true + Volo.Docs.Admin + 2.8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs index 8dba5fa3e1..f06c676079 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs @@ -10,12 +10,6 @@ namespace Volo.Docs.Projects Task> GetListAsync(); Task GetAsync(string shortName); - - Task CreateAsync(CreateProjectDto input); - - Task UpdateAsync(Guid id, UpdateProjectDto input); - - Task DeleteAsync(Guid id); Task> GetVersionsAsync(string shortName); } diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs index 6a7e8132fc..20970ade0d 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs @@ -45,60 +45,6 @@ namespace Volo.Docs.Projects return ObjectMapper.Map(project); } - public async Task CreateAsync(CreateProjectDto input) - { - var project = new Project(_guidGenerator.Create(), - input.Name, - input.ShortName, - input.DocumentStoreType, - input.Format, - input.DefaultDocumentName, - input.NavigationDocumentName - ) - { - MinimumVersion = input.MinimumVersion, - MainWebsiteUrl = input.MainWebsiteUrl, - LatestVersionBranchName = input.LatestVersionBranchName - }; - - foreach (var extraProperty in input.ExtraProperties) - { - project.ExtraProperties.Add(extraProperty.Key,extraProperty.Value); - } - - project = await _projectRepository.InsertAsync(project); - - return ObjectMapper.Map(project); - } - - public async Task UpdateAsync(Guid id, UpdateProjectDto input) - { - var project = await _projectRepository.GetAsync(id); - - project.SetName(input.Name); - project.SetFormat(input.Format); - project.SetNavigationDocumentName(input.NavigationDocumentName); - project.SetDefaultDocumentName(input.DefaultDocumentName); - - project.MinimumVersion = input.MinimumVersion; - project.MainWebsiteUrl = input.MainWebsiteUrl; - project.LatestVersionBranchName = input.LatestVersionBranchName; - - foreach (var extraProperty in input.ExtraProperties) - { - project.ExtraProperties[extraProperty.Key] = extraProperty.Value; - } - - project = await _projectRepository.UpdateAsync(project); - - return ObjectMapper.Map(project); - } - - public async Task DeleteAsync(Guid id) - { - await _projectRepository.DeleteAsync(id); - } - public async Task> GetVersionsAsync(string shortName) { var project = await _projectRepository.GetByShortNameAsync(shortName); diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/IProjectRepository.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/IProjectRepository.cs index fdfe785df4..1872d33cd8 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/IProjectRepository.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/IProjectRepository.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Domain.Repositories; @@ -6,6 +7,10 @@ namespace Volo.Docs.Projects { public interface IProjectRepository : IBasicRepository { + Task> GetListAsync(string sorting, int maxResultCount, int skipCount); + + Task GetTotalProjectCount(); + Task GetByShortNameAsync(string shortName); } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Projects/EfCoreProjectRepository.cs b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Projects/EfCoreProjectRepository.cs index e06fea3aba..f9e6ab4fa7 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Projects/EfCoreProjectRepository.cs +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo/Docs/Projects/EfCoreProjectRepository.cs @@ -1,4 +1,7 @@ using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Dynamic.Core; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.Domain.Entities; @@ -16,6 +19,20 @@ namespace Volo.Docs.Projects } + public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount) + { + var projects = await DbSet.OrderBy(sorting ?? "creationTime desc") + .PageBy(skipCount, maxResultCount) + .ToListAsync(); + + return projects; + } + + public async Task GetTotalProjectCount() + { + return await DbSet.CountAsync(); + } + public async Task GetByShortNameAsync(string shortName) { var project = await DbSet.FirstOrDefaultAsync(p => p.ShortName == shortName); diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs index 180cec622f..e22df620f9 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs @@ -34,21 +34,6 @@ namespace Volo.Docs.Projects return ProjectAppService.GetAsync(shortName); } - public Task CreateAsync(CreateProjectDto input) - { - return ProjectAppService.CreateAsync(input); - } - - public Task UpdateAsync(Guid id, UpdateProjectDto input) - { - return ProjectAppService.UpdateAsync(id, input); - } - - public Task DeleteAsync(Guid id) - { - return ProjectAppService.DeleteAsync(id); - } - [HttpGet] [Route("{shortName}/versions")] public virtual Task> GetVersionsAsync(string shortName)