mirror of https://github.com/abpframework/abp.git
25 changed files with 530 additions and 79 deletions
@ -0,0 +1,17 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<Import Project="..\..\..\..\common.props" /> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.0</TargetFramework> |
|||
<AssemblyName>Volo.Docs.Admin.Application.Contracts</AssemblyName> |
|||
<PackageId>Volo.Docs.Admin.Application.Contracts</PackageId> |
|||
<RootNamespace /> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\Volo.Docs.Domain.Shared\Volo.Docs.Domain.Shared.csproj" /> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Ddd.Application\Volo.Abp.Ddd.Application.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -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 |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -1,6 +1,6 @@ |
|||
using System.Collections.Generic; |
|||
|
|||
namespace Volo.Docs.Projects |
|||
namespace Volo.Docs.Admin.Projects |
|||
{ |
|||
public class CreateProjectDto |
|||
{ |
|||
@ -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<PagedResultDto<ProjectDto>> GetListAsync(PagedAndSortedResultRequestDto input); |
|||
|
|||
Task<ProjectDto> GetAsync(Guid id); |
|||
|
|||
Task<ProjectDto> CreateAsync(CreateProjectDto input); |
|||
|
|||
Task<ProjectDto> UpdateAsync(Guid id, UpdateProjectDto input); |
|||
|
|||
Task DeleteAsync(Guid id); |
|||
} |
|||
} |
|||
@ -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<Guid> |
|||
{ |
|||
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<string, object> ExtraProperties { get; set; } |
|||
} |
|||
} |
|||
@ -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 |
|||
{ |
|||
@ -0,0 +1,19 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<Import Project="..\..\..\..\common.props" /> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.0</TargetFramework> |
|||
<AssemblyName>Volo.Docs.Admin.Application</AssemblyName> |
|||
<PackageId>Volo.Docs.Admin.Application</PackageId> |
|||
<RootNamespace /> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\Volo.Docs.Admin.Application.Contracts\Volo.Docs.Admin.Application.Contracts.csproj" /> |
|||
<ProjectReference Include="..\Volo.Docs.Domain\Volo.Docs.Domain.csproj" /> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj" /> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.Caching\Volo.Abp.Caching.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -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<Project, ProjectDto>(); |
|||
} |
|||
} |
|||
} |
|||
@ -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<AbpAutoMapperOptions>(options => |
|||
{ |
|||
options.AddProfile<DocsAdminApplicationAutoMapperProfile>(validate: true); |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
@ -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<PagedResultDto<ProjectDto>> GetListAsync(PagedAndSortedResultRequestDto input) |
|||
{ |
|||
var blogs = await _projectRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount); |
|||
|
|||
var totalCount = await _projectRepository.GetTotalProjectCount(); |
|||
|
|||
var dtos = ObjectMapper.Map<List<Project>, List<ProjectDto>>(blogs); |
|||
|
|||
return new PagedResultDto<ProjectDto>(totalCount, dtos); |
|||
} |
|||
|
|||
public async Task<ProjectDto> GetAsync(Guid id) |
|||
{ |
|||
var project = await _projectRepository.GetAsync(id); |
|||
|
|||
return ObjectMapper.Map<Project, ProjectDto>(project); |
|||
} |
|||
|
|||
public async Task<ProjectDto> 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, ProjectDto>(project); |
|||
} |
|||
|
|||
public async Task<ProjectDto> 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, ProjectDto>(project); |
|||
} |
|||
|
|||
public async Task DeleteAsync(Guid id) |
|||
{ |
|||
await _projectRepository.DeleteAsync(id); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,16 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<Import Project="..\..\..\..\common.props" /> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.0</TargetFramework> |
|||
<AssemblyName>Volo.Docs.Admin.HttpApi.Client</AssemblyName> |
|||
<PackageId>Volo.Docs.Admin.HttpApi.Client</PackageId> |
|||
<RootNamespace /> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\Volo.Docs.Admin.Application.Contracts\Volo.Docs.Admin.Application.Contracts.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -0,0 +1,11 @@ |
|||
using Volo.Abp.Modularity; |
|||
|
|||
namespace Volo.Docs.Admin |
|||
{ |
|||
[DependsOn( |
|||
typeof(DocsAdminApplicationContractsModule))] |
|||
public class DocsAdminHttpApiClientModule : AbpModule |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<Import Project="..\..\..\..\common.props" /> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.0</TargetFramework> |
|||
<AssemblyName>Volo.Docs.Admin.HttpApi</AssemblyName> |
|||
<PackageId>Volo.Docs.Admin.HttpApi</PackageId> |
|||
<RootNamespace /> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\Volo.Docs.Admin.Application.Contracts\Volo.Docs.Admin.Application.Contracts.csproj" /> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc\Volo.Abp.AspNetCore.Mvc.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
@ -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 |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -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<PagedResultDto<ProjectDto>> GetListAsync(PagedAndSortedResultRequestDto input) |
|||
{ |
|||
return ProjectAppService.GetListAsync(input); |
|||
} |
|||
|
|||
[HttpGet] |
|||
[Route("{id}")] |
|||
public Task<ProjectDto> GetAsync(Guid id) |
|||
{ |
|||
return ProjectAppService.GetAsync(id); |
|||
} |
|||
|
|||
public Task<ProjectDto> CreateAsync(CreateProjectDto input) |
|||
{ |
|||
return ProjectAppService.CreateAsync(input); |
|||
} |
|||
|
|||
public Task<ProjectDto> UpdateAsync(Guid id, UpdateProjectDto input) |
|||
{ |
|||
return ProjectAppService.UpdateAsync(id, input); |
|||
} |
|||
|
|||
public Task DeleteAsync(Guid id) |
|||
{ |
|||
return ProjectAppService.DeleteAsync(id); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
using AutoMapper; |
|||
using Volo.Abp.AutoMapper; |
|||
|
|||
namespace Volo.Docs.Admin |
|||
{ |
|||
public class DocsAdminWebAutoMapperProfile : Profile |
|||
{ |
|||
public DocsAdminWebAutoMapperProfile() |
|||
{ |
|||
|
|||
} |
|||
} |
|||
} |
|||
@ -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<AbpMvcDataAnnotationsLocalizationOptions>(options => |
|||
{ |
|||
options.AddAssemblyResource(typeof(DocsResource), typeof(DocsAdminWebModule).Assembly); |
|||
}); |
|||
} |
|||
|
|||
public override void ConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
Configure<VirtualFileSystemOptions>(options => |
|||
{ |
|||
options.FileSets.AddEmbedded<DocsAdminWebModule>("Volo.Docs.Admin"); |
|||
}); |
|||
|
|||
Configure<AbpAutoMapperOptions>(options => |
|||
{ |
|||
options.AddProfile<DocsAdminWebAutoMapperProfile>(validate: true); |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
@ -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" |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,55 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk.Web"> |
|||
|
|||
<Import Project="..\..\..\..\common.props" /> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netstandard2.0</TargetFramework> |
|||
<AssemblyName>Volo.Docs.Admin.Web</AssemblyName> |
|||
<PackageId>Volo.Docs.Admin.Web</PackageId> |
|||
<OutputType>Library</OutputType> |
|||
<IsPackable>true</IsPackable> |
|||
<RootNamespace>Volo.Docs.Admin</RootNamespace> |
|||
<TypeScriptToolsVersion>2.8</TypeScriptToolsVersion> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj" /> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj" /> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj" /> |
|||
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Packages\Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj" /> |
|||
<ProjectReference Include="..\Volo.Docs.Admin.HttpApi\Volo.Docs.Admin.HttpApi.csproj" /> |
|||
<PackageReference Include="CommonMark.NET" Version="0.15.1" /> |
|||
</ItemGroup> |
|||
|
|||
|
|||
<ItemGroup> |
|||
<EmbeddedResource Include="wwwroot\**\*.*" /> |
|||
<EmbeddedResource Include="Pages\**\*.cshtml" /> |
|||
<EmbeddedResource Include="Pages\**\*.css" /> |
|||
<EmbeddedResource Include="Pages\**\*.js" /> |
|||
<EmbeddedResource Include="Localization\Resources\**\*.json" /> |
|||
</ItemGroup> |
|||
|
|||
|
|||
<ItemGroup> |
|||
<Content Remove="wwwroot\**\*.*" /> |
|||
<Content Remove="Pages\**\*.cshtml" /> |
|||
<Content Remove="Pages\**\*.css" /> |
|||
<Content Remove="Pages\**\*.js" /> |
|||
<Content Remove="Localization\Resources\**\*.json" /> |
|||
<Content Remove="Properties\launchSettings.json" /> |
|||
<Content Remove="compilerconfig.json" /> |
|||
<Content Remove="compilerconfig.json.defaults" /> |
|||
<None Remove="Pages\Documents\Project\bootstrap-toc.js" /> |
|||
<None Remove="Pages\Documents\Project\index - Copy.css" /> |
|||
<None Remove="Pages\Documents\Project\index - Copy.min.css" /> |
|||
<None Remove="Pages\Documents\Project\vs.js" /> |
|||
<None Include="compilerconfig.json" /> |
|||
<None Include="Properties\launchSettings.json" /> |
|||
</ItemGroup> |
|||
|
|||
<ItemGroup> |
|||
<Folder Include="wwwroot\" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
Loading…
Reference in new issue