private FunctionTemplate GetFunctionTemplate(string templateFolderName)
{
var templateDir = Path.Combine(_settings.TemplatesPath, templateFolderName);
var metadataPath = Path.Combine(templateDir, "metadata.json");
var functionPath = Path.Combine(templateDir, "function.json");
if (File.Exists(metadataPath) && File.Exists(functionPath))
{
try
{
var template = new FunctionTemplate()
{
Files = new Dictionary<string, string>()
};
template.Metadata = JObject.Parse(FileSystemHelpers.ReadAllTextFromFile(metadataPath));
template.Function = JObject.Parse(FileSystemHelpers.ReadAllTextFromFile(functionPath));
var splits = templateFolderName.Split('\\');
template.Runtime = splits[splits.Length - 3];
template.Id = splits[splits.Length - 1];
var files = Directory.EnumerateFiles(templateDir).Where((fileName) =>
{
return fileName != metadataPath && fileName != functionPath;
});
foreach (var fileName in files)
{
var fileContent = File.ReadAllText(fileName);
template.Files.Add(Path.GetFileName(fileName), fileContent);
}
return template;
}
catch (Exception e)
{
FunctionsTrace.Diagnostics.Event(TracingEvents.ErrorInGetFunctionTemplate, templateFolderName, e.Message);
return null;
}
}
return null;
}