From 9e0fbac6d3cb4e11efdb33c339ccf0adbca0bc6c Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Thu, 1 Apr 2021 22:36:59 +0200 Subject: Initial commit --- src/IOL.Helpers/StringHelpers.cs | 67 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 src/IOL.Helpers/StringHelpers.cs (limited to 'src/IOL.Helpers/StringHelpers.cs') diff --git a/src/IOL.Helpers/StringHelpers.cs b/src/IOL.Helpers/StringHelpers.cs new file mode 100644 index 0000000..1dde161 --- /dev/null +++ b/src/IOL.Helpers/StringHelpers.cs @@ -0,0 +1,67 @@ +using System; +using System.Text; +using System.Text.RegularExpressions; + +namespace IOL.Helpers +{ + public static class StringHelpers + { + public static bool IsNullOrWhiteSpace(this string value) { + return string.IsNullOrWhiteSpace(value); + } + + public static string Slugified(this string input) { + return Slug.Generate(true, input); + } + + public static bool HasValue(this string value) { + return !value.IsNullOrWhiteSpace(); + } + + public static Guid ToGuid(this string value) { + return Guid.Parse(value); + } + + public static string Base64Encode(this string text) { + return Convert.ToBase64String(Encoding.UTF8.GetBytes(text)); + } + + public static string ExtractFileName(this string value) { + if (value.IsNullOrWhiteSpace()) return default; + var lastIndex = value.LastIndexOf('.'); + return lastIndex <= 0 ? default : value.Substring(0, lastIndex); + } + + public static string ExtractExtension(this string value) { + if (value.IsNullOrWhiteSpace()) return default; + var lastIndex = value.LastIndexOf('.'); + return lastIndex <= 0 ? default : value.Substring(lastIndex); + } + + public static string Capitalize(this string input) { + return input.IsNullOrWhiteSpace() + ? input + : Regex.Replace(input, @"\b(\w)", m => m.Value.ToUpper(), RegexOptions.None); + } + + + /// + /// Check if the given MIME is a JSON MIME. + /// + /// MIME + /// Returns true if MIME type is json. + public static bool IsJsonMime(this string mime) { + var jsonRegex = new Regex("(?i)^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$"); + return mime != null && (jsonRegex.IsMatch(mime) || mime.Equals("application/json-patch+json")); + } + + public static string Obfuscate(this string value) { + var last4Chars = "****"; + if (value.HasValue() && value.Length > 4) { + last4Chars = value.Substring(value.Length - 4); + } + + return "****" + last4Chars; + } + } +} \ No newline at end of file -- cgit v1.3