private void HandleFileSystemChange()
{
if (_lock.TryEnterWriteLock(Timeout.Infinite))
{
try
{
var runtimeDirs = Directory.GetDirectories(_settings.TemplatesPath);
var templateDirs = new List<string>();
foreach (var d in runtimeDirs)
{
templateDirs.AddRange(Directory.GetDirectories(Path.Combine(d, "Templates")));
}
IEnumerable<FunctionTemplate> templates = templateDirs.Select(GetFunctionTemplate).ToList();
templates = templates.Where(e => e != null).ToList();
_templates = templates;
}
finally
{
_lock.ExitWriteLock();
}
}
}