From fc6199cbc42f6d4a594710293a3cf875491ca632 Mon Sep 17 00:00:00 2001 From: Salih Date: Tue, 25 Jun 2024 17:27:19 +0300 Subject: [PATCH] refactoring GetPossibleNames method --- .../Volo/Docs/Documents/DocumentAppService.cs | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs index ddf28ac00a..e6b10967af 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs @@ -451,12 +451,32 @@ namespace Volo.Docs.Documents return new List {originalDocumentName}; } + var lowerCaseIndex = "index." + format; + var titleCaseIndex = "Index." + format; + var indexLength = lowerCaseIndex.Length; + var possibleNames = new List {originalDocumentName}; - if (!originalDocumentName.EndsWith("/index." + format, StringComparison.OrdinalIgnoreCase)) + if (originalDocumentName.EndsWith("/" + lowerCaseIndex, StringComparison.OrdinalIgnoreCase) || originalDocumentName.Equals(lowerCaseIndex, StringComparison.OrdinalIgnoreCase)) + { + var indexPart = originalDocumentName.Right(indexLength); + + var documentNameWithoutIndex = originalDocumentName.Left(originalDocumentName.Length - lowerCaseIndex.Length); + + if(indexPart != lowerCaseIndex) + { + possibleNames.Add(documentNameWithoutIndex + lowerCaseIndex); + } + + if(indexPart != titleCaseIndex) + { + possibleNames.Add(documentNameWithoutIndex + titleCaseIndex); + } + } + else { - var documentNameWithoutExtension = RemoveFileExtensionFromPath(originalDocumentName, format); - possibleNames.Add(documentNameWithoutExtension + "/index." + format); - possibleNames.Add(documentNameWithoutExtension + "/Index." + format); + var documentNameWithoutExtension = RemoveFileExtensionFromPath(originalDocumentName, format).EnsureEndsWith('/'); + possibleNames.Add(documentNameWithoutExtension + lowerCaseIndex); + possibleNames.Add(documentNameWithoutExtension + titleCaseIndex); } return possibleNames;