private static bool TryResolveParameters(FunctionSnapshot function, FunctionInstanceSnapshot snapshot, out IEnumerable<FunctionParameterViewModel> resolvedParameters)
        {
            List<FunctionParameterViewModel> parameters = new List<FunctionParameterViewModel>();

            foreach (KeyValuePair<string, ParameterSnapshot> parameter in function.Parameters)
            {
                if (!snapshot.Arguments.ContainsKey(parameter.Key))
                {
                    resolvedParameters = null;
                    return false;
                }
                
                FunctionParameterViewModel parameterModel = new FunctionParameterViewModel
                {
                    Name = parameter.Key,
                    Description = parameter.Value.Prompt,
                    Value = snapshot.Arguments[parameter.Key].Value
                };
                
                parameters.Add(parameterModel);
            }

            resolvedParameters = parameters;
            return true;
        }
        private static IEnumerable<FunctionParameterViewModel> CreateParameters(FunctionSnapshot function)
        {
            List<FunctionParameterViewModel> parameters = new List<FunctionParameterViewModel>();

            foreach (KeyValuePair<string, ParameterSnapshot> parameter in function.Parameters)
            {
                FunctionParameterViewModel parameterModel = new FunctionParameterViewModel
                {
                    Name = parameter.Key,
                    Description = parameter.Value.Prompt,
                    Value = parameter.Value.DefaultValue
                };
                parameters.Add(parameterModel);
            }

            return parameters;
        }