Пример #1
0
        public virtual bool TryGetHostParamDefault(string paramName, out string value)
        {
            switch (paramName)
            {
            case "GlobalJsonExists":
                value = GlobalJsonFileExistsInPath.ToString();
                return(true);

            default:
                return(_baseHost.TryGetHostParamDefault(paramName, out value));
            }
        }
Пример #2
0
        public IParameterSet SetupDefaultParamValuesFromTemplateAndHost(ITemplate templateInfo, string realName, out IReadOnlyList <string> paramsWithInvalidValues)
        {
            ITemplateEngineHost host           = _environmentSettings.Host;
            IParameterSet       templateParams = templateInfo.Generator.GetParametersForTemplate(_environmentSettings, templateInfo);
            List <string>       paramsWithInvalidValuesList = new List <string>();

            foreach (ITemplateParameter param in templateParams.ParameterDefinitions)
            {
                if (param.IsName)
                {
                    templateParams.ResolvedValues[param] = realName;
                }
                else if (host.TryGetHostParamDefault(param.Name, out string?hostParamValue) && hostParamValue != null)
                {
                    object?resolvedValue = templateInfo.Generator.ConvertParameterValueToType(_environmentSettings, param, hostParamValue, out bool valueResolutionError);
                    if (!valueResolutionError)
                    {
                        if (resolvedValue is null)
                        {
                            throw new InvalidOperationException($"{nameof(resolvedValue)} cannot be null when {nameof(valueResolutionError)} is 'false'.");
                        }
                        templateParams.ResolvedValues[param] = resolvedValue;
                    }
                    else
                    {
                        paramsWithInvalidValuesList.Add(param.Name);
                    }
                }
                else if (param.Priority != TemplateParameterPriority.Required && param.DefaultValue != null)
                {
                    object?resolvedValue = templateInfo.Generator.ConvertParameterValueToType(_environmentSettings, param, param.DefaultValue, out bool valueResolutionError);
                    if (!valueResolutionError)
                    {
                        if (resolvedValue is null)
                        {
                            throw new InvalidOperationException($"{nameof(resolvedValue)} cannot be null when {nameof(valueResolutionError)} is 'false'.");
                        }
                        templateParams.ResolvedValues[param] = resolvedValue;
                    }
                    else
                    {
                        paramsWithInvalidValuesList.Add(param.Name);
                    }
                }
            }

            paramsWithInvalidValues = paramsWithInvalidValuesList;
            return(templateParams);
        }
Пример #3
0
        //
        // Reads the parameters from the template and the host and setup their values in the return IParameterSet.
        // Host param values override template defaults.
        //
        public IParameterSet SetupDefaultParamValuesFromTemplateAndHost(ITemplate templateInfo, string realName, out IList <string> paramsWithInvalidValues)
        {
            ITemplateEngineHost host           = _environmentSettings.Host;
            IParameterSet       templateParams = templateInfo.Generator.GetParametersForTemplate(_environmentSettings, templateInfo);

            paramsWithInvalidValues = new List <string>();

            foreach (ITemplateParameter param in templateParams.ParameterDefinitions)
            {
                if (param.IsName)
                {
                    templateParams.ResolvedValues[param] = realName;
                }
                else if (host.TryGetHostParamDefault(param.Name, out string hostParamValue) && hostParamValue != null)
                {
                    object resolvedValue = templateInfo.Generator.ConvertParameterValueToType(_environmentSettings, param, hostParamValue, out bool valueResolutionError);
                    if (!valueResolutionError)
                    {
                        templateParams.ResolvedValues[param] = resolvedValue;
                    }
                    else
                    {
                        paramsWithInvalidValues.Add(param.Name);
                    }
                }
                else if (param.Priority != TemplateParameterPriority.Required && param.DefaultValue != null)
                {
                    object resolvedValue = templateInfo.Generator.ConvertParameterValueToType(_environmentSettings, param, param.DefaultValue, out bool valueResolutionError);
                    if (!valueResolutionError)
                    {
                        templateParams.ResolvedValues[param] = resolvedValue;
                    }
                    else
                    {
                        paramsWithInvalidValues.Add(param.Name);
                    }
                }
            }

            return(templateParams);
        }
Пример #4
0
        //
        // Reads the parameters from the template and the host and setup their values in the return IParameterSet.
        // Host param values override template defaults.
        //
        public static IParameterSet SetupDefaultParamValuesFromTemplateAndHost(ITemplateEngineHost host, ITemplate template, string realName)
        {
            IParameterSet templateParams = template.Generator.GetParametersForTemplate(template);
            string        hostParamValue;

            foreach (ITemplateParameter param in templateParams.ParameterDefinitions)
            {
                if (param.IsName)
                {
                    templateParams.ResolvedValues[param] = realName;
                }
                else if (host.TryGetHostParamDefault(param.Name, out hostParamValue) && hostParamValue != null)
                {
                    templateParams.ResolvedValues[param] = template.Generator.ConvertParameterValueToType(param, hostParamValue);
                }
                else if (param.Priority != TemplateParameterPriority.Required && param.DefaultValue != null)
                {
                    templateParams.ResolvedValues[param] = template.Generator.ConvertParameterValueToType(param, param.DefaultValue);
                }
            }

            return(templateParams);
        }