From 61f32fa3aa8b577d34c7ab694ced6518ad6dcdc9 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Sat, 11 Apr 2020 23:00:31 +0800 Subject: [PATCH] Normalize shortName --- .../Volo.Docs.Domain/Volo/Docs/Projects/Project.cs | 7 +++++++ .../Volo/Docs/Projects/EfCoreProjectRepository.cs | 13 +++++++++++-- .../Volo/Docs/Projects/MongoProjectRepository.cs | 13 +++++++++++-- .../Volo/Docs/ProjectAdminAppService_Tests.cs | 2 +- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs index f1cfd0d777..8bc36a2106 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/Project.cs @@ -76,6 +76,8 @@ namespace Volo.Docs.Projects ParametersDocumentName = Check.NotNullOrWhiteSpace(parametersDocumentName, nameof(parametersDocumentName)); ExtraProperties = new Dictionary(); + + NormalizeShortName(); } public void SetName(string name) @@ -102,5 +104,10 @@ namespace Volo.Docs.Projects { DefaultDocumentName = Check.NotNullOrWhiteSpace(defaultDocumentName, nameof(defaultDocumentName)); } + + private void NormalizeShortName() + { + ShortName = ShortName.ToLower(); + } } } \ 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 0611624029..835172e679 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 @@ -29,7 +29,9 @@ namespace Volo.Docs.Projects public async Task GetByShortNameAsync(string shortName) { - var project = await DbSet.FirstOrDefaultAsync(p => p.ShortName == shortName); + var normalizeShortName = NormalizeShortName(shortName); + + var project = await DbSet.FirstOrDefaultAsync(p => p.ShortName == normalizeShortName); if (project == null) { @@ -41,7 +43,14 @@ namespace Volo.Docs.Projects public async Task ShortNameExistsAsync(string shortName) { - return await DbSet.AnyAsync(x => x.ShortName == shortName); + var normalizeShortName = NormalizeShortName(shortName); + + return await DbSet.AnyAsync(x => x.ShortName == normalizeShortName); + } + + private string NormalizeShortName(string shortName) + { + return shortName.ToLower(); } } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs index 1dbb646405..f1312b9e5d 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo/Docs/Projects/MongoProjectRepository.cs @@ -30,7 +30,9 @@ namespace Volo.Docs.Projects public async Task GetByShortNameAsync(string shortName) { - var project = await GetMongoQueryable().FirstOrDefaultAsync(p => p.ShortName == shortName); + var normalizeShortName = NormalizeShortName(shortName); + + var project = await GetMongoQueryable().FirstOrDefaultAsync(p => p.ShortName == normalizeShortName); if (project == null) { @@ -42,7 +44,14 @@ namespace Volo.Docs.Projects public async Task ShortNameExistsAsync(string shortName) { - return await GetMongoQueryable().AnyAsync(x => x.ShortName == shortName); + var normalizeShortName = NormalizeShortName(shortName); + + return await GetMongoQueryable().AnyAsync(x => x.ShortName == normalizeShortName); + } + + private string NormalizeShortName(string shortName) + { + return shortName.ToLower(); } } } \ No newline at end of file diff --git a/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo/Docs/ProjectAdminAppService_Tests.cs b/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo/Docs/ProjectAdminAppService_Tests.cs index 3e4b62f876..442a72f18b 100644 --- a/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo/Docs/ProjectAdminAppService_Tests.cs +++ b/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo/Docs/ProjectAdminAppService_Tests.cs @@ -67,7 +67,7 @@ namespace Volo.Docs //Assert projectDto.ShouldNotBeNull(); projectDto.Name.ShouldBe(createProjectDto.Name); - projectDto.ShortName.ShouldBe(createProjectDto.ShortName); + projectDto.ShortName.ShouldBe(createProjectDto.ShortName.ToLower()); projectDto.Format.ShouldBe(createProjectDto.Format); projectDto.DefaultDocumentName.ShouldBe(createProjectDto.DefaultDocumentName); projectDto.NavigationDocumentName.ShouldBe(createProjectDto.NavigationDocumentName);