//private readonly Task queueListenerTask; /// <summary> /// Creates a new WatchingResolvePathTemplateManager. /// </summary> /// <param name="layoutRoot">the folders to watch and look for templates.</param> /// <param name="cache">the cache to invalidate</param> public WatchingResolvePathTemplateManager(IEnumerable<string> layoutRoot, InvalidatingCachingProvider cache) { this.cache = cache; var list = new ReadOnlyCollection<string>(new List<string>(layoutRoot)); inner = new ResolvePathTemplateManager(list); watchers = list.Select(path => { var watcher = new FileSystemWatcher(Path.GetFullPath(path), "*.*"); watcher.EnableRaisingEvents = true; watcher.IncludeSubdirectories = true; watcher.Changed += watcher_Changed; watcher.Created += watcher_Changed; watcher.Deleted += watcher_Changed; watcher.Renamed += watcher_Renamed; return watcher; }).ToList(); //queueListenerTask = StartQueue(); }
//private readonly Task queueListenerTask; /// <summary> /// Creates a new WatchingResolvePathTemplateManager. /// </summary> /// <param name="layoutRoot">the folders to watch and look for templates.</param> /// <param name="cache">the cache to invalidate</param> public WatchingResolvePathTemplateManager(IEnumerable <string> layoutRoot, InvalidatingCachingProvider cache) { this.cache = cache; var list = new ReadOnlyCollection <string>(new List <string>(layoutRoot)); inner = new ResolvePathTemplateManager(list); watchers = list.Select(path => { var watcher = new FileSystemWatcher(Path.GetFullPath(path), "*.*"); watcher.EnableRaisingEvents = true; watcher.IncludeSubdirectories = true; watcher.Changed += watcher_Changed; watcher.Created += watcher_Changed; watcher.Deleted += watcher_Changed; watcher.Renamed += watcher_Renamed; return(watcher); }).ToList(); //queueListenerTask = StartQueue(); }
public void RazorEngineService_TestResolvePathTemplateManager() { var cache = new InvalidatingCachingProvider(); var temp = Path.GetTempFileName(); var template2File = Path.GetTempFileName(); File.Delete(temp); try { Directory.CreateDirectory(temp); var mgr = new ResolvePathTemplateManager(new[] { temp }); var template = @"free"; var template2 = @"template2"; File.WriteAllText(template2File, template2); var templateFileName = Path.ChangeExtension(Path.GetRandomFileName(), ".cshtml"); var templateName = Path.GetFileNameWithoutExtension(templateFileName); var templateFile = Path.Combine(temp, templateFileName); File.WriteAllText(templateFile, template); RunTestHelper(service => { var model = new { MyPrice = 0 }; string result = service.RunCompile(templateName, null, model); Assert.AreEqual("free", result.Trim()); string result2 = service.RunCompile(template2File, null, model); Assert.AreEqual("template2", result2.Trim()); }, config => { config.CachingProvider = cache; config.TemplateManager = mgr; }); } finally { Directory.Delete(temp, true); if (File.Exists(template2File)) { File.Delete(template2File); } } }