AzureFunctions.Code.TemplatesManager.GetFunctionTemplate C# (CSharp) Method

GetFunctionTemplate() private method

private GetFunctionTemplate ( string templateFolderName ) : FunctionTemplate
templateFolderName string
return AzureFunctions.Models.FunctionTemplate
        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;
        }