public static void SetCachedDefinition(string key, GrasshopperDefinition definition, string data) { CachedDefinition cachedef = new CachedDefinition { Definition = definition, WatchedFileRuntimeSerialNumber = GrasshopperDefinition.WatchedFileRuntimeSerialNumber }; System.Runtime.Caching.MemoryCache.Default.Set(key, cachedef, CachePolicy); if (!string.IsNullOrWhiteSpace(data)) { string filename = DefinitionCacheFileName(key); if (filename != null && !System.IO.File.Exists(filename)) { try { if (!System.IO.Directory.Exists(DefinitionCacheDirectory)) { System.IO.Directory.CreateDirectory(DefinitionCacheDirectory); } System.IO.File.WriteAllText(filename, data); System.Threading.Tasks.Task.Run(() => DataCache.CGCacheDirectory()); } catch (Exception ex) { Serilog.Log.Error($"Unable to write cache file: {filename}"); Serilog.Log.Error(ex, "File error exception"); } } } }
public static void SetCachedDefinition(string key, GrasshopperDefinition definition) { CachedDefinition cachedef = new CachedDefinition { Definition = definition, WatchedFileRuntimeSerialNumber = GrasshopperDefinition.WatchedFileRuntimeSerialNumber }; System.Runtime.Caching.MemoryCache.Default.Set(key, cachedef, CachePolicy); }
public IDictionary <int, CachedDefinition> Cache(Format.Loaded.LoadedDefinition[] definitions) { IDictionary <int, CachedDefinition> positions = new Dictionary <int, CachedDefinition>(); foreach (Format.Loaded.LoadedDefinition def in definitions) { if (!def.ArtisanGood.TryLoad(out int artisanGoodId)) { def.ArtisanGood.LoadErrorMessage(this.monitor, "artisan good"); continue; } positions[artisanGoodId] = new CachedDefinition(this.monitor, def.Texture, def.SourceItems); } return(positions); }