aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/Utilities
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Utilities')
-rw-r--r--src/server/Utilities/ExtensionMethods.cs54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/server/Utilities/ExtensionMethods.cs b/src/server/Utilities/ExtensionMethods.cs
new file mode 100644
index 0000000..d6bce94
--- /dev/null
+++ b/src/server/Utilities/ExtensionMethods.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Linq;
+using System.Security.Claims;
+using System.Security.Principal;
+
+namespace Dough.Utilities
+{
+ public static class ExtentionMethods
+ {
+ public static Guid ToGuidOrDefault(this string value)
+ {
+ if (value.IsMissing()) return default;
+ try
+ {
+ return new Guid(value);
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e);
+ return default;
+ }
+ }
+
+ public static DateTime ToDateTimeOrDefault(this string value)
+ {
+ if (value.IsMissing()) return default;
+ try
+ {
+ return DateTime.Parse(value);
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine(e);
+ return default;
+ }
+ }
+
+ public static bool IsMissing(this string value) => string.IsNullOrWhiteSpace(value);
+ public static bool IsPresent(this string value) => !value.IsMissing();
+
+ public static bool IsValidUrl(this string value)
+ {
+ return Uri.TryCreate(value, UriKind.Absolute, out var uriResult)
+ && (uriResult.Scheme == Uri.UriSchemeHttp || uriResult.Scheme == Uri.UriSchemeHttps);
+ }
+
+ public static string GetClaimValueOrDefault(this IPrincipal currentPrincipal, string claimName)
+ {
+ var identity = currentPrincipal.Identity as ClaimsIdentity;
+ var claim = identity?.Claims.SingleOrDefault(c => c.Type == claimName);
+ return claim?.Value;
+ }
+ }
+}