/// <summary> /// Ivalidates app localizations cache /// </summary> /// <param name="appName"></param> public static void InvalidateAppLocalizationsCache(string appName, string className) { //app localizations cache first if (AppLocalizationsCache.ContainsKey(appName) && string.IsNullOrEmpty(className)) { AppLocalizationsCache.Remove(appName); } else if (AppLocalizationsCache.ContainsKey(appName)) { AppLocalizationsCache.Remove(appName); //FIXME - this requires better reading - need to read from db to 'top up' the cache //var localizations = AppLocalizationsCache[appName].ToList(); //var toBeRemoved = localizations.FirstOrDefault(l => l.ClassName == className); //if(toBeRemoved != null) // localizations.Remove(toBeRemoved); //AppLocalizationsCache[appName] = localizations; } //clients cache too... var keysToInvalidate = ClientLocalizationsCache.Keys.Where(k => k.IndexOf(appName) > -1).ToList(); foreach (var key in keysToInvalidate) { ClientLocalizationsCache.Remove(key); } }