internal ICollection GetFunctions()

in sdk/Sdk.Generators/FunctionExecutor/FunctionExecutorGenerator.Parser.cs [25:63]


            internal ICollection<ExecutableFunction> GetFunctions(IEnumerable<IMethodSymbol> methods)
            {
                var functionList = new List<ExecutableFunction>();

                foreach (IMethodSymbol method in methods.Where(m=>m.DeclaredAccessibility == Accessibility.Public))
                {
                    _context.CancellationToken.ThrowIfCancellationRequested();

                    var methodName = method.Name;
                    var methodParameterList = new List<string>();

                    foreach (IParameterSymbol parameterSymbol in method.Parameters)
                    {
                        var fullyQualifiedTypeName = parameterSymbol.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
                        methodParameterList.Add(fullyQualifiedTypeName);
                    }

                    var defaultFormatClassName = method.ContainingSymbol.ToDisplayString();
                    var fullyQualifiedClassName = method.ContainingSymbol.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);

                    var function = new ExecutableFunction
                    {
                        EntryPoint = $"{defaultFormatClassName}.{method.Name}",
                        ParameterTypeNames = methodParameterList,
                        MethodName = methodName,
                        ShouldAwait = IsTaskType(method.ReturnType),
                        IsReturnValueAssignable = IsReturnValueAssignable(method),
                        IsStatic = method.IsStatic,
                        ParentFunctionClassName = defaultFormatClassName,
                        ParentFunctionFullyQualifiedClassName = fullyQualifiedClassName,
                        Visibility = method.GetVisibility(),
                        AssemblyIdentity = method.ContainingAssembly.Identity.GetDisplayName(),
                    };

                    functionList.Add(function);
                }

                return functionList;
            }