public static async Task <string> SaveCacheEntity(string url, WebCacheFileModel cacheEntity, long ttl = -1) { try { if (WebCacheService == null) { InitCacheConnection(); } if (isWebCacheEnabled && WebCacheService != null) { var dnsHost = string.Empty; var pathWithQuery = string.Empty; try { var uri = new Uri(url); dnsHost = uri.DnsSafeHost?.ToUpper(); pathWithQuery = uri?.PathAndQuery; } catch { } var cacheHashKey = HashUrl.GetHashAsString(dnsHost); var cacheKey = HashUrl.GetHashAsString(pathWithQuery); var cacheValue = MessagePackSerializer.Serialize <WebCacheFileModel>(cacheEntity); var task = WebCacheService.Save(cacheHashKey, cacheKey, cacheValue); if (task.Wait(_cacheTimeout)) { return($"{dnsHost}-{pathWithQuery}"); } else { ConsoleLogger.Write($"ERROR: CACHE SaveCacheEntity(url, entity, ttl) - Redis TimeOut"); } } } catch (Exception ex) { ConsoleLogger.Write($"ERROR: CACHE SaveCacheEntity(url, entity, ttl) - {ex.ToString()}"); } return(null); }
public static async Task <string> SaveCacheEntity(string url, string key, WebCacheFileModel cacheEntity, long ttl = -1) { try { if (WebCacheService == null) { InitCacheConnection(); } if (isWebCacheEnabled && WebCacheService != null) { var dnsHost = string.Empty; try { dnsHost = new Uri(url).DnsSafeHost?.ToUpper(); } catch { } var cacheHashKey = HashUrl.GetHashAsString(dnsHost); var cacheKey = HashUrl.GetHashAsString(key); var cacheValue = JsonConvert.SerializeObject(cacheEntity); var task = WebCacheService.Save(cacheHashKey, cacheKey, cacheValue); if (task.Wait(_cacheTimeout)) { return($"{cacheHashKey}-{cacheKey}"); } else { ConsoleLogger.Write($"ERROR: CACHE SaveCacheEntity(url, key, entity, ttl) - Redis TimeOut"); } } } catch (Exception ex) { ConsoleLogger.Write($"ERROR: CACHE SaveCacheEntity(url, key, entity, ttl) - {ex.ToString()}"); } return(null); }