Add classified NTFS path template placeholders

This commit is contained in:
Meik
2026-07-16 20:16:03 +02:00
parent c1e26ba615
commit 18a96d3e23
5 changed files with 79 additions and 9 deletions

View File

@@ -33,6 +33,9 @@ namespace C4IT_IAM_Engine
public sealed class RootPathTemplateContext
{
public string Server { get; set; } = string.Empty;
public string ServerName { get; set; } = string.Empty;
public string DfsNamespaceName { get; set; } = string.Empty;
public string ShareName { get; set; } = string.Empty;
public string[] Segments { get; set; } = Array.Empty<string>();
public string Name { get; set; } = string.Empty;
public string Path { get; set; } = string.Empty;
@@ -109,6 +112,8 @@ namespace C4IT_IAM_Engine
return new RootPathTemplateContext
{
Server = server,
ServerName = server,
ShareName = sanitizedPathSegments.Length == 0 ? string.Empty : sanitizedPathSegments[sanitizedPathSegments.Length - 1],
Segments = sanitizedPathSegments,
Name = sanitizedPathSegments.Length == 0 ? string.Empty : sanitizedPathSegments[sanitizedPathSegments.Length - 1],
Path = sanitizedPathSegments.Length == 0 ? string.Empty : JoinSanitizedPathSegments(sanitizedPathSegments, groupNameSanitizeReplacement),
@@ -308,6 +313,9 @@ namespace C4IT_IAM_Engine
var context = rootContext ?? new RootPathTemplateContext();
var result = Regex.Replace(templateValue, @"{{\s*ROOT_SERVER\s*}}", context.Server ?? string.Empty, RegexOptions.IgnoreCase);
result = Regex.Replace(result, @"{{\s*SERVER_NAME\s*}}", context.ServerName ?? context.Server ?? string.Empty, RegexOptions.IgnoreCase);
result = Regex.Replace(result, @"{{\s*DFS_NAMESPACE_NAME\s*}}", context.DfsNamespaceName ?? string.Empty, RegexOptions.IgnoreCase);
result = Regex.Replace(result, @"{{\s*SHARE_NAME\s*}}", context.ShareName ?? string.Empty, RegexOptions.IgnoreCase);
result = Regex.Replace(result, @"{{\s*ROOT_NAME\s*}}", context.Name ?? string.Empty, RegexOptions.IgnoreCase);
result = Regex.Replace(result, @"{{\s*ROOT_PATH(?:\s*\(\s*(\d+)\s*\))?\s*}}", match =>
{