public static async Task <int> Instantiate(ITemplateEngineHost host, string templateName, string name, string fallbackName, bool createDir, string aliasName, IReadOnlyDictionary <string, string> inputParameters, bool skipUpdateCheck) { ITemplateInfo templateInfo; using (Timing.Over("Get single")) { if (!TryGetTemplate(templateName, out templateInfo)) { return(-1); } } ITemplate template = SettingsLoader.LoadTemplate(templateInfo); if (!skipUpdateCheck) { host.LogMessage("Checking for updates..."); //UpdateCheck(); // this'll need params } string realName = name ?? template.DefaultName ?? fallbackName; IParameterSet templateParams = SetupDefaultParamValuesFromTemplateAndHost(host, template, realName); if (aliasName != null) { //TODO: Add parameters to aliases (from _parameters_ collection) AliasRegistry.SetTemplateAlias(aliasName, template); host.LogMessage("Alias created."); return(0); } ResolveUserParameters(template, templateParams, inputParameters); bool missingParams = CheckForMissingRequiredParameters(host, templateParams); if (missingParams) { return(missingParams ? -1 : 0); } try { Stopwatch sw = Stopwatch.StartNew(); // todo: pass an implementation of ITemplateEngineHost IComponentManager componentManager = Settings.SettingsLoader.Components; await template.Generator.Create(host, template, templateParams, componentManager); sw.Stop(); host.OnTimingCompleted("Content generation time", sw.Elapsed); } finally { } return(0); }
public virtual void OnTimingCompleted(string label, TimeSpan timing) => _baseHost.OnTimingCompleted(label, timing);