private List GetTemplateParameters()

in src/Amazon.Lambda.Tools/Commands/DeployServerlessCommand.cs [576:615]


        private List<Parameter> GetTemplateParameters(Stack stack, List<Tuple<string, bool>> definedParameters)
        {
            var parameters = new List<Parameter>();

            var map = GetKeyValuePairOrDefault(this.TemplateParameters, LambdaDefinedCommandOptions.ARGUMENT_CLOUDFORMATION_TEMPLATE_PARAMETER, false);
            if (map != null)
            {
                foreach (var kvp in map)
                {
                    Tuple<string, bool> dp = null;
                    if(definedParameters != null)
                    {
                        dp = definedParameters.FirstOrDefault(x => string.Equals(x.Item1, kvp.Key));
                    }

                    if (dp == null)
                    {
                        this.Logger.WriteLine($"Skipping passed in template parameter {kvp.Key} because the template does not define that parameter");
                    }
                    else
                    {
                        parameters.Add(new Parameter { ParameterKey = kvp.Key, ParameterValue = kvp.Value ?? "" });
                    }
                }
            }

            if (stack != null)
            {
                foreach (var existingParameter in stack.Parameters)
                {
                    if ((definedParameters == null || definedParameters.FirstOrDefault(x => string.Equals(x.Item1, existingParameter.ParameterKey)) != null) && 
                        !parameters.Any(x => string.Equals(x.ParameterKey, existingParameter.ParameterKey)))
                    {
                        parameters.Add(new Parameter { ParameterKey = existingParameter.ParameterKey, UsePreviousValue = true });
                    }
                }
            }

            return parameters;
        }