using Microsoft.Extensions.Caching.Memory; namespace BotSharp.Core.Infrastructures; public static class Utilities { public static string HashTextMd5(string text) { using var md5 = System.Security.Cryptography.MD5.Create(); var data = md5.ComputeHash(Encoding.UTF8.GetBytes(text)); var sb = new StringBuilder(); foreach (var c in data) { sb.Append(c.ToString("x2")); } return sb.ToString(); } public static string HashTextSha256(string text) { using var sha256 = System.Security.Cryptography.SHA256.Create(); var data = sha256.ComputeHash(Encoding.UTF8.GetBytes(text)); var sb = new StringBuilder(); foreach(var c in data) { sb.Append(c.ToString("x2")); } return sb.ToString(); } public static (string, string) SplitAsTuple(this string str, string sep) { var splits = str.Split(sep); return (splits[0], splits[1]); } /// /// Flush cache /// public static void ClearCache() { // Clear whole cache. if (new MemoryCacheAttribute(0).Cache is MemoryCache memcache) { memcache.Compact(100); } } }