This repository has been archived by the owner on Aug 6, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathStringExtensions.cs
136 lines (116 loc) · 3.47 KB
/
StringExtensions.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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
namespace DotNetCameroon
{
using System;
using System.Text;
public static class StringExtensions
{
public static string ToInitial(this string input)
{
if (string.IsNullOrEmpty(input))
{
return string.Empty;
}
string[] words = input.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
if (words.Length == 0)
{
return string.Empty;
}
else if (words.Length == 1)
{
return words[0].Substring(0, 1);
}
else
{
return $"{words[0][0]}{words[1][0]}";
}
}
public static string ToSlug(this string input)
{
if (string.IsNullOrEmpty(input))
{
return string.Empty;
}
return input.ToLower().Replace(' ', '-');
}
public static string ToTitle(this string input)
{
if (string.IsNullOrEmpty(input))
{
return string.Empty;
}
List<string> words = new List<string>();
StringBuilder currentWord = new StringBuilder();
foreach (char c in input)
{
if (char.IsUpper(c))
{
if (currentWord.Length > 0)
{
words.Add(currentWord.ToString());
currentWord.Clear();
}
}
currentWord.Append(c);
}
if (currentWord.Length > 0)
{
words.Add(currentWord.ToString());
}
return string.Join(" ", words);
}
public static string ToCshtmlName(this string url)
{
if (string.IsNullOrEmpty(url))
{
return string.Empty;
}
if (url.Contains("?"))
{
url = url.Substring(0, url.IndexOf("?"));
}
else if (url.Contains("/"))
{
string[] urlParts = url.Split('/');
string lastPartUrl = urlParts[urlParts.Length - 1];
if (Guid.TryParse(lastPartUrl, out _))
{
url = url.Substring(0, url.LastIndexOf("/"));
}
}
string[] parts = url.Split('/');
string title = string.Empty;
foreach (var item in parts)
{
if (item.Contains("List") || item.Contains("Form") || item.Contains("Scheduler") || item.Contains("Kanban"))
{
title = item;
}
}
if (string.IsNullOrEmpty(title))
{
title = parts[parts.Length - 1];
}
return title.Trim();
}
public static string ToPageFolderName(this string url)
{
if (string.IsNullOrEmpty(url))
{
return string.Empty;
}
if (url.Contains("?"))
{
url = url.Substring(0, url.IndexOf("?"));
}
if (url.Contains("/"))
{
string[] urlParts = url.Split('/');
if (urlParts.Length >= 4)
{
return urlParts[3];
}
}
return string.Empty;
}
}
}