/
UrlConfigExtensions.cs
60 lines (50 loc) · 1.39 KB
/
UrlConfigExtensions.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Text;
namespace ModuleManager.Extensions
{
public static class UrlConfigExtensions
{
public static string SafeUrl(this UrlDir.UrlConfig url)
{
if (url == null) return "<null>";
string nodeName;
if (!string.IsNullOrEmpty(url.type?.Trim()))
{
nodeName = url.type;
}
else if (url.type == null)
{
nodeName = "<null>";
}
else
{
nodeName = "<blank>";
}
string parentUrl = null;
if (url.parent != null)
{
try
{
parentUrl = url.parent.url;
}
catch
{
parentUrl = "<unknown>";
}
}
if (parentUrl == null)
return nodeName;
else
return parentUrl + "/" + nodeName;
}
public static string PrettyPrint(this UrlDir.UrlConfig config)
{
if (config == null) return "<null UrlConfig>";
StringBuilder sb = new StringBuilder();
sb.Append(config.SafeUrl());
sb.Append('\n');
config.config.PrettyPrint(ref sb, " ");
return sb.ToString();
}
}
}