| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace InABox.DynamicGrid{    public interface IFunctionParameter    {        string Name { get; }        string ParamType { get; }    }    public class FunctionParameter : IFunctionParameter    {        public string Name { get; set; }        public string ParamType { get; set; }        public FunctionParameter(string name, string paramType)        {            Name = name;            ParamType = paramType;        }    }    public class FunctionParameter<TParam> : IFunctionParameter    {        public string Name { get; set; }        public string ParamType => typeof(TParam).ToString();        public FunctionParameter(string name)        {            Name = name;        }    }    public class FunctionTemplate    {        public string Name { get; set; }        public string Description { get; set; }        public List<IFunctionParameter> Parameters { get; set; }        public string Template => $"{Name}({string.Join(", ", Parameters.Select(x => x.Name))})";        public string Tooltip => $"{Name}({string.Join(", ", Parameters.Select(x => string.IsNullOrWhiteSpace(x.ParamType) ? x.Name : $"{x.ParamType} {x.Name}"))})";    }}
 |