Browse Source

Refactor application and web layers.

pull/625/head
Halil ibrahim Kalkan 8 years ago
parent
commit
187a8ae486
  1. 8
      modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsApplicationContractsModule.cs
  2. 2
      modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs
  3. 2
      modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs
  4. 3
      modules/docs/src/Volo.Docs.Application/Volo/Docs/DocsApplicationAutoMapperProfile.cs
  5. 3
      modules/docs/src/Volo.Docs.Application/Volo/Docs/DocsApplicationModule.cs
  6. 6
      modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs
  7. 15
      modules/docs/src/Volo.Docs.Web/DocsWebAutoMapperProfile.cs
  8. 6
      modules/docs/src/Volo.Docs.Web/DocsWebModule.cs
  9. 0
      modules/docs/src/Volo.Docs.Web/Models/NavigationNode.cs
  10. 0
      modules/docs/src/Volo.Docs.Web/Models/NavigationWithDetailsDto.cs
  11. 7
      modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

8
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/DocsApplicationContractsModule.cs

@ -1,8 +1,12 @@
using Volo.Abp.Modularity;
using Volo.Abp.Application;
using Volo.Abp.Modularity;
namespace Volo.Docs
{
[DependsOn(typeof(DocsDomainSharedModule))]
[DependsOn(
typeof(DocsDomainSharedModule),
typeof(AbpDddApplicationModule)
)]
public class DocsApplicationContractsModule : AbpModule
{

2
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs

@ -9,6 +9,6 @@ namespace Volo.Docs.Documents
Task<DocumentWithDetailsDto> GetDefaultAsync(GetDefaultDocumentInput input);
Task<NavigationWithDetailsDto> GetNavigationDocumentAsync(GetNavigationDocumentInput input);
Task<DocumentWithDetailsDto> GetNavigationDocumentAsync(GetNavigationDocumentInput input);
}
}

2
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Projects/IProjectAppService.cs

@ -13,6 +13,6 @@ namespace Volo.Docs.Projects
Task<ProjectDto> GetByShortNameAsync(string shortName);
Task<List<VersionInfoDto>> GetVersionsAsync(Guid projectId);
Task<List<VersionInfoDto>> GetVersionsAsync(Guid id);
}
}

3
modules/docs/src/Volo.Docs.Application/Volo/Docs/DocsApplicationAutoMapperProfile.cs

@ -12,9 +12,6 @@ namespace Volo.Docs
CreateMap<Project, ProjectDto>();
CreateMap<Document, DocumentWithDetailsDto>()
.Ignore(x => x.Project);
CreateMap<DocumentWithDetailsDto, NavigationWithDetailsDto>()
.Ignore(x => x.RootNode);
}
}
}

3
modules/docs/src/Volo.Docs.Application/Volo/Docs/DocsApplicationModule.cs

@ -1,5 +1,4 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AutoMapper;
using Volo.Abp.AutoMapper;
using Volo.Abp.Caching;
using Volo.Abp.Modularity;

6
modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs

@ -37,16 +37,14 @@ namespace Volo.Docs.Documents
);
}
public virtual async Task<NavigationWithDetailsDto> GetNavigationDocumentAsync(GetNavigationDocumentInput input)
public virtual async Task<DocumentWithDetailsDto> GetNavigationDocumentAsync(GetNavigationDocumentInput input)
{
var project = await _projectRepository.GetAsync(input.ProjectId);
var documentDto = await GetDocumentWithDetailsDto(
return await GetDocumentWithDetailsDto(
project,
project.NavigationDocumentName,
input.Version
);
return ObjectMapper.Map<DocumentWithDetailsDto, NavigationWithDetailsDto>(documentDto);
}
protected virtual async Task<DocumentWithDetailsDto> GetDocumentWithDetailsDto(

15
modules/docs/src/Volo.Docs.Web/DocsWebAutoMapperProfile.cs

@ -0,0 +1,15 @@
using AutoMapper;
using Volo.Abp.AutoMapper;
using Volo.Docs.Documents;
namespace Volo.Docs
{
public class DocsWebAutoMapperProfile : Profile
{
public DocsWebAutoMapperProfile()
{
CreateMap<DocumentWithDetailsDto, NavigationWithDetailsDto>()
.Ignore(x => x.RootNode);
}
}
}

6
modules/docs/src/Volo.Docs.Web/DocsWebModule.cs

@ -2,6 +2,7 @@
using Microsoft.Extensions.DependencyInjection;
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;
@ -34,6 +35,11 @@ namespace Volo.Docs
//TODO: Make configurable!
options.Conventions.AddPageRoute("/Documents/Project/Index", "documents/{projectName}/{version}/{*documentName}");
});
Configure<AbpAutoMapperOptions>(options =>
{
options.AddProfile<DocsWebAutoMapperProfile>(validate: true);
});
}
}
}

0
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/NavigationNode.cs → modules/docs/src/Volo.Docs.Web/Models/NavigationNode.cs

0
modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/NavigationWithDetailsDto.cs → modules/docs/src/Volo.Docs.Web/Models/NavigationWithDetailsDto.cs

7
modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs

@ -5,6 +5,7 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.Rendering;
using Volo.Abp.AspNetCore.Mvc.UI.RazorPages;
using Volo.Docs.Documents;
using Volo.Docs.Formatting;
using Volo.Docs.Models;
@ -12,7 +13,7 @@ using Volo.Docs.Projects;
namespace Volo.Docs.Pages.Documents.Project
{
public class IndexModel : PageModel
public class IndexModel : AbpPageModel
{
[BindProperty(SupportsGet = true)]
public string ProjectName { get; set; }
@ -68,13 +69,15 @@ namespace Volo.Docs.Pages.Documents.Project
{
try
{
Navigation = await _documentAppService.GetNavigationDocumentAsync(
var document = await _documentAppService.GetNavigationDocumentAsync(
new GetNavigationDocumentInput
{
ProjectId = project.Id,
Version = Version
}
);
Navigation = ObjectMapper.Map<DocumentWithDetailsDto, NavigationWithDetailsDto>(document);
}
catch (DocumentNotFoundException) //TODO: What if called on a remote service which may return 404
{

Loading…
Cancel
Save