| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | using System;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}"))})";    }}
 |