Exemplo n.º 1
0
        public IAnalysisResult GetMember(GetMemberInput input)
        {
            SchemaColumn column = null;

            _columns.TryGetValue(input.Name, out column);
            return(column);
        }
Exemplo n.º 2
0
        public GetMemberOutput GetMemberById(GetMemberInput input)
        {
            var             getMember = _memberManager.GetMemberByID(input.Id);
            GetMemberOutput output    = Mapper.Map <Models.Member, GetMemberOutput>(getMember);

            return(output);
        }
Exemplo n.º 3
0
        public IAnalysisResult GetMember(GetMemberInput input)
        {
            IFunctionResult funcRes = null;

            _memberFunctions.TryGetValue(input.Name, out funcRes);
            return(funcRes);
        }
Exemplo n.º 4
0
        public IAnalysisResult GetMember(GetMemberInput input)
        {
            TestFunctionCollection collection = null;

            _collections.TryGetValue(input.Name, out collection);
            return(collection);
        }
Exemplo n.º 5
0
 public IAnalysisResult GetMember(GetMemberInput input)
 {
     if (_returns != null && _returns.Count == 1)
     {
         var typeRef = new TypeReference(_returns[0]);
         return(typeRef.GetMember(input));
     }
     return(null);
 }
Exemplo n.º 6
0
 public IAnalysisResult GetMember(GetMemberInput input)
 {
     if (Children.Count == 1 &&
         Children[Children.Keys[0]] is TypeReference)
     {
         return((Children[Children.Keys[0]] as TypeReference).GetMember(input));
     }
     return(null);
 }
Exemplo n.º 7
0
 public IAnalysisResult GetMember(GetMemberInput input)
 {
     if (MemberDictionary.Count == 0 && MimicTableName != null)
     {
         return(null);
     }
     else
     {
         VariableDef varDef = null;
         MemberDictionary.TryGetValue(input.Name, out varDef);
         return(varDef);
     }
 }
Exemplo n.º 8
0
        /// <summary>
        /// 【扩展模块】带查询条件的分页查询方法
        /// </summary>
        /// <remarks>
        /// 例子:
        /// 这是一个开发示例,目的了解API的开发机制<br/>
        /// 返回为分页过后的列表集合
        /// </remarks>
        /// <param name="input">GetMemberInput DTO 函数</param>
        /// <returns>用户UserDto</returns>
        /// <response code="201">返回value字符串</response>
        /// <response code="400">如果id为空</response>
        /// <returns></returns>
        public async Task <PagedResultDto <MemberListDto> > GetPaged(GetMemberInput input)
        {
            var entity = new MemberListDto()
            {
                Name = "模块化测试接口"
            };

            var entityListDtos = new List <MemberListDto>();

            entityListDtos.Add(entity);

            return(new PagedResultDto <MemberListDto>(10, entityListDtos));
        }
Exemplo n.º 9
0
        public IAnalysisResult GetMember(GetMemberInput input)
        {
            ProgramRegister progReg = null;

            if (_childRegisters != null)
            {
                _childRegisters.TryGetValue(input.Name, out progReg);
            }
            else
            {
            }
            return(progReg);
        }
Exemplo n.º 10
0
        /// <summary>
        /// 根据查询条件获取个人会员信息表分页列表
        /// </summary>
        public async Task <PagedResultDto <MemberListDto> > GetPagedMembersAsync(GetMemberInput input)
        {
            var query = _memberRepositoryAsNoTrack;
            //TODO:根据传入的参数添加过滤条件

            var memberCount = await query.CountAsync();

            var members = await query.OrderBy(input.Sorting)
                          .PageBy(input)
                          .ToListAsync();

            //var members = await query.OrderBy(input.Sorting).ToListAsync();

            var memberListDtos = members.MapTo <List <MemberListDto> >();

            return(new PagedResultDto <MemberListDto>(
                       memberCount,
                       memberListDtos
                       ));
        }
Exemplo n.º 11
0
        public IAnalysisResult GetMember(GetMemberInput input)
        {
            string name = input.Name;

            // need to handle cases where the name is a function call. I think the only time this would happen is if name ends with ')'
            if (name.EndsWith(")"))
            {
                // try to get the function from the class
                int firstParen = name.IndexOf('(');
                if (firstParen > 0)
                {
                    name = name.Substring(0, firstParen);
                }
            }
            //else
            //{
            if (!string.IsNullOrWhiteSpace(TableName))
            {
                // TODO: get the specified column from the database provider
                return(null);
            }
            else
            {
                MemberType memType = Analysis.MemberType.All;
                // TODO: there's probably a better way to do this
                var member = GetAnalysisMembers(memType, input).Where(x => x.Name.Equals(name, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
                if (member is AstNode4gl)
                {
                    input.ProjectEntry    = (member as AstNode4gl).SyntaxTree.ProjectEntry;
                    input.DefiningProject = (member as AstNode4gl).SyntaxTree.ProjectEntry.ParentProject;
                }
                else if (member is VariableDef)
                {
                    input.ProjectEntry    = (member as VariableDef).SyntaxTree.ProjectEntry;
                    input.DefiningProject = (member as VariableDef).SyntaxTree.ProjectEntry.ParentProject;
                }
                return(member);
            }
            //}
        }
Exemplo n.º 12
0
 public IAnalysisResult GetMember(GetMemberInput input)
 {
     return(null);
 }
Exemplo n.º 13
0
 public IAnalysisResult GetMember(GetMemberInput input)
 {
     return(GetFunction(input.Name));
 }
Exemplo n.º 14
0
        public static IAnalysisResult GetValueByIndex(string exprText, int index, Genero4glAst ast, out IGeneroProject definingProject, out IProjectEntry projectEntry, out bool isDeferredFunction,
                                                      FunctionProviderSearchMode searchInFunctionProvider = FunctionProviderSearchMode.NoSearch, bool isFunctionCallOrDefinition = false,
                                                      bool getTypes = true, bool getVariables = true, bool getConstants = true)
        {
            isDeferredFunction = false;
            definingProject    = null;
            projectEntry       = null;
            //_functionProvider = functionProvider;
            //_databaseProvider = databaseProvider;
            //_programFileProvider = programFileProvider;

            AstNode containingNode = null;

            if (ast != null)
            {
                containingNode = GetContainingNode(ast.Body, index);
                ast.Body.SetNamespace(null);
            }

            IAnalysisResult res = null;
            int             tmpIndex = 0;
            int             bracketDepth = 0;
            bool            doSearch = false;
            bool            resetStartIndex = false;
            int             startIndex = 0, endIndex = 0;
            bool            noEndIndexSet = false;

            if (exprText == null)
            {
                return(null);
            }

            while (tmpIndex < exprText.Length)
            {
                if (resetStartIndex)
                {
                    startIndex      = tmpIndex;
                    resetStartIndex = false;
                    if (startIndex + 1 > exprText.Length)
                    {
                        break;
                    }
                }

                doSearch = false;
                switch (exprText[tmpIndex])
                {
                case '.':
                {
                    if (bracketDepth == 0)
                    {
                        endIndex = tmpIndex - 1;
                        if (endIndex >= startIndex)
                        {
                            // we have our 'piece'
                            doSearch = true;
                        }
                        if (exprText[startIndex] == '.')
                        {
                            startIndex++;
                        }
                    }
                    tmpIndex++;
                }
                break;

                case '[':
                    if (noEndIndexSet)
                    {
                        noEndIndexSet = false;
                    }
                    else
                    {
                        if (bracketDepth == 0)
                        {
                            endIndex = tmpIndex - 1;
                        }
                    }
                    bracketDepth++;
                    tmpIndex++;
                    break;

                case ']':
                {
                    bracketDepth--;
                    if (bracketDepth == 0)
                    {
                        if (exprText.Length <= tmpIndex + 1 ||
                            exprText[tmpIndex + 1] != '[')
                        {
                            // we have our first 'piece'
                            doSearch = true;
                        }
                        else
                        {
                            noEndIndexSet = true;
                        }
                    }
                    tmpIndex++;
                }
                break;

                default:
                {
                    if (bracketDepth == 0 && (tmpIndex + 1 == exprText.Length))
                    {
                        endIndex = tmpIndex;
                        doSearch = true;
                    }
                    tmpIndex++;
                }
                break;
                }

                if (!doSearch)
                {
                    continue;
                }

                // we can do our search
                var dotPiece = exprText.Substring(startIndex, (endIndex - startIndex) + 1);
                if (dotPiece.Contains('('))
                {
                    // remove the params piece
                    int remIndex = dotPiece.IndexOf('(');
                    dotPiece = dotPiece.Substring(0, remIndex);
                }

                bool lookForFunctions = isFunctionCallOrDefinition && (endIndex + 1 == exprText.Length);

                resetStartIndex = true;

                if (res != null)
                {
                    if (ast != null)
                    {
                        var gmi = new GetMemberInput
                        {
                            Name       = dotPiece,
                            AST        = ast,
                            IsFunction = lookForFunctions
                        };
                        IAnalysisResult tempRes = res.GetMember(gmi);
                        if (gmi.DefiningProject != null && definingProject != gmi.DefiningProject)
                        {
                            definingProject = gmi.DefiningProject;
                        }
                        if (gmi.ProjectEntry != null && projectEntry != gmi.ProjectEntry)
                        {
                            projectEntry = gmi.ProjectEntry;
                        }
                        res = tempRes;
                        if (tempRes == null)
                        {
                            res = null;
                            break;
                        }
                    }
                    else
                    {
                        res = null;
                        break;
                    }
                }
                else
                {
                    IFunctionResult funcRes;
                    if (!lookForFunctions)
                    {
                        if (SystemVariables.TryGetValue(dotPiece, out res) ||
                            SystemConstants.TryGetValue(dotPiece, out res) ||
                            SystemMacros.TryGetValue(dotPiece, out res))
                        {
                            continue;
                        }
                    }
                    else
                    {
                        if (SystemFunctions.TryGetValue(dotPiece, out funcRes))
                        {
                            res = funcRes;
                            continue;
                        }

                        if (ast != null && ast._functionProvider != null && ast._functionProvider.Name.Equals(dotPiece, StringComparison.OrdinalIgnoreCase))
                        {
                            res = ast._functionProvider;
                            continue;
                        }
                    }

                    if (containingNode != null && containingNode is IFunctionResult)
                    {
                        IFunctionResult func = containingNode as IFunctionResult;
                        if ((getVariables && func.Variables.TryGetValue(dotPiece, out res)))
                        {
                            continue;
                        }
                        if (!lookForFunctions)
                        {
                            // Check for local vars, types, and constants
                            if ((getTypes && func.Types.TryGetValue(dotPiece, out res)) ||
                                (getConstants && func.Constants.TryGetValue(dotPiece, out res)))
                            {
                                continue;
                            }

                            List <Tuple <IAnalysisResult, IndexSpan> > limitedScopeVars;
                            if ((getVariables && func.LimitedScopeVariables.TryGetValue(dotPiece, out limitedScopeVars)))
                            {
                                foreach (var item in limitedScopeVars)
                                {
                                    if (item.Item2.IsInSpan(index))
                                    {
                                        res = item.Item1;

                                        break;
                                    }
                                }
                                if (res != null)
                                {
                                    continue;
                                }
                            }
                        }
                    }

                    if (ast != null && ast.Body is IModuleResult)
                    {
                        IModuleResult mod = ast.Body as IModuleResult;
                        if (!lookForFunctions)
                        {
                            // check for module vars, types, and constants (and globals defined in this module)
                            if ((getVariables && (mod.Variables.TryGetValue(dotPiece, out res) || mod.GlobalVariables.TryGetValue(dotPiece, out res))) ||
                                (getTypes && (mod.Types.TryGetValue(dotPiece, out res) || mod.GlobalTypes.TryGetValue(dotPiece, out res))) ||
                                (getConstants && (mod.Constants.TryGetValue(dotPiece, out res) || mod.GlobalConstants.TryGetValue(dotPiece, out res))))
                            {
                                continue;
                            }

                            // check for cursors in this module
                            if (mod.Cursors.TryGetValue(dotPiece, out res))
                            {
                                continue;
                            }
                        }
                        else
                        {
                            // check for module functions
                            if (mod.Functions.TryGetValue(dotPiece, out funcRes))
                            {
                                // check for any function info collected at the project entry level, and update the function's documentation with that.
                                if (ast._projEntry != null && ast._projEntry is IGeneroProjectEntry)
                                {
                                    var commentInfo = (ast._projEntry as IGeneroProjectEntry).GetFunctionInfo(funcRes.Name);
                                    if (commentInfo != null)
                                    {
                                        funcRes.SetCommentDocumentation(commentInfo);
                                    }
                                }
                                res = funcRes;
                                continue;
                            }
                        }
                    }

                    // TODO: this could probably be done more efficiently by having each GeneroAst load globals and functions into
                    // dictionaries stored on the IGeneroProject, instead of in each project entry.
                    // However, this does required more upkeep when changes occur. Will look into it...
                    if (ast != null && ast.ProjectEntry != null && ast.ProjectEntry is IGeneroProjectEntry)
                    {
                        IGeneroProjectEntry genProj = ast.ProjectEntry as IGeneroProjectEntry;
                        if (genProj.ParentProject != null &&
                            !genProj.FilePath.ToLower().EndsWith(".inc"))
                        {
                            bool found = false;
                            foreach (var projEntry in genProj.ParentProject.ProjectEntries.Where(x => x.Value != genProj))
                            {
                                if (projEntry.Value.Analysis != null &&
                                    projEntry.Value.Analysis.Body != null)
                                {
                                    projEntry.Value.Analysis.Body.SetNamespace(null);
                                    IModuleResult modRes = projEntry.Value.Analysis.Body as IModuleResult;
                                    if (modRes != null)
                                    {
                                        if (!lookForFunctions)
                                        {
                                            // check global vars, types, and constants
                                            // TODO: need option to enable/disable legacy linking
                                            if ((getVariables && (modRes.Variables.TryGetValue(dotPiece, out res) || modRes.GlobalVariables.TryGetValue(dotPiece, out res))) ||
                                                (getTypes && (modRes.Types.TryGetValue(dotPiece, out res) || modRes.GlobalTypes.TryGetValue(dotPiece, out res))) ||
                                                (getConstants && (modRes.Constants.TryGetValue(dotPiece, out res) || modRes.GlobalConstants.TryGetValue(dotPiece, out res))))
                                            {
                                                found = true;
                                                break;
                                            }

                                            // check for cursors in this module
                                            if (modRes.Cursors.TryGetValue(dotPiece, out res))
                                            {
                                                found = true;
                                                break;
                                            }
                                        }
                                        else
                                        {
                                            // check project functions
                                            if (modRes.Functions.TryGetValue(dotPiece, out funcRes))
                                            {
                                                if (funcRes.AccessModifier == AccessModifier.Public)
                                                {
                                                    res   = funcRes;
                                                    found = true;
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            if (found)
                            {
                                continue;
                            }
                        }
                    }

                    // check for classes
                    GeneroPackage package;
                    if (Packages.TryGetValue(dotPiece, out package))
                    {
                        res = package;
                        continue;
                    }

                    /* TODO:
                     * Need to check for:
                     * 1) Temp tables
                     */

                    // Nothing found yet...
                    // If our containing node is at the function or globals level, we need to go deeper
                    if (containingNode != null &&
                        (containingNode is GlobalsNode ||
                         containingNode is FunctionBlockNode ||
                         containingNode is ReportBlockNode))
                    {
                        containingNode = GetContainingNode(containingNode, index);
                    }
                    // check for record field
                    if (containingNode != null &&
                        (containingNode is DefineNode ||
                         containingNode is TypeDefNode))
                    {
                        containingNode = GetContainingNode(containingNode, index);

                        if (containingNode != null &&
                            (containingNode is VariableDefinitionNode ||
                             containingNode is TypeDefinitionNode) &&
                            containingNode.Children.Count == 1 &&
                            containingNode.Children[containingNode.Children.Keys[0]] is TypeReference)
                        {
                            var typeRef = containingNode.Children[containingNode.Children.Keys[0]] as TypeReference;
                            while (typeRef != null &&
                                   typeRef.Children.Count == 1)
                            {
                                if (typeRef.Children[typeRef.Children.Keys[0]] is RecordDefinitionNode)
                                {
                                    var         recNode = typeRef.Children[typeRef.Children.Keys[0]] as RecordDefinitionNode;
                                    VariableDef recField;
                                    if (recNode.MemberDictionary.TryGetValue(exprText, out recField))
                                    {
                                        res = recField;
                                        break;
                                    }
                                    else
                                    {
                                        recField = recNode.MemberDictionary.Where(x => x.Value.LocationIndex < index)
                                                   .OrderByDescending(x => x.Value.LocationIndex)
                                                   .Select(x => x.Value)
                                                   .FirstOrDefault();
                                        if (recField != null)
                                        {
                                            typeRef = recField.Type;
                                        }
                                        else
                                        {
                                            break;
                                        }
                                    }
                                }
                                else if (typeRef.Children[typeRef.Children.Keys[0]] is TypeReference)
                                {
                                    typeRef = typeRef.Children[typeRef.Children.Keys[0]] as TypeReference;
                                }
                                else
                                {
                                    break;
                                }
                            }
                        }
                    }

                    // try an imported module
                    if (ast != null && ast.Body is IModuleResult &&
                        ast.ProjectEntry != null && ast.ProjectEntry != null)
                    {
                        if ((ast.Body as IModuleResult).FglImports.Contains(dotPiece))
                        {
                            // need to get the ast for the other project entry
                            var refProjKVP = (ast.ProjectEntry as IGeneroProjectEntry).ParentProject.ReferencedProjects.Values.FirstOrDefault(
                                x =>
                            {
                                var fn = Path.GetFileNameWithoutExtension(x.Directory);
                                return(fn?.Equals(dotPiece, StringComparison.OrdinalIgnoreCase) ?? false);
                            });
                            if (refProjKVP is IAnalysisResult)
                            {
                                definingProject = refProjKVP;
                                res             = refProjKVP as IAnalysisResult;
                                continue;
                            }

                            IAnalysisResult sysImportMod;
                            // check the system imports
                            if (SystemImportModules.TryGetValue(dotPiece, out sysImportMod))
                            {
                                res = sysImportMod;
                                continue;
                            }
                        }
                    }

                    if (!lookForFunctions)
                    {
                        // try include files
                        var foundInclude = false;
                        if (ast?.ProjectEntry != null)
                        {
                            foreach (var includeFile in ast.ProjectEntry.GetIncludedFiles())
                            {
                                if (includeFile.Analysis?.Body is IModuleResult)
                                {
                                    var mod = includeFile.Analysis.Body as IModuleResult;
                                    if ((getTypes && (mod.Types.TryGetValue(dotPiece, out res) || mod.GlobalTypes.TryGetValue(dotPiece, out res))) ||
                                        (getConstants && (mod.Constants.TryGetValue(dotPiece, out res) || mod.GlobalConstants.TryGetValue(dotPiece, out res))))
                                    {
                                        foundInclude = true;
                                        break;
                                    }
                                }
                            }
                        }
                        if (foundInclude)
                        {
                            continue;
                        }

                        if (ast?._databaseProvider != null)
                        {
                            res = ast._databaseProvider.GetTable(dotPiece);
                            if (res != null)
                            {
                                continue;
                            }
                        }
                    }

                    // Only do a public function search if the dotPiece is the whole text we're searching for
                    // I.e. no namespaces
                    if (lookForFunctions && dotPiece == exprText)
                    {
                        if (searchInFunctionProvider == FunctionProviderSearchMode.Search)
                        {
                            if (res == null && ast?._functionProvider != null)
                            {
                                // check for the function name in the function provider
                                var funcs = ast._functionProvider.GetFunction(dotPiece);
                                if (funcs != null)
                                {
                                    res = funcs.FirstOrDefault();
                                    if (res != null)
                                    {
                                        continue;
                                    }
                                }
                            }
                        }
                        else if (searchInFunctionProvider == FunctionProviderSearchMode.Deferred)
                        {
                            isDeferredFunction = true;
                        }
                    }

                    if (res == null)
                    {
                        break;
                    }
                }
            }

            return(res);
        }
Exemplo n.º 15
0
        internal IEnumerable <IAnalysisResult> GetAnalysisMembers(MemberType memberType, GetMemberInput input)
        {
            bool dummyDef;
            List <IAnalysisResult> members = new List <IAnalysisResult>();

            if (Children.Count == 1)
            {
                // we have an array type or a record type definition
                var node = Children[Children.Keys[0]];
                if (node is ArrayTypeReference)
                {
                    return((node as ArrayTypeReference).GetAnalysisResults(memberType, input));
                }
                else if (node is RecordDefinitionNode)
                {
                    return((node as RecordDefinitionNode).GetAnalysisResults(input.AST));
                }
                else if (node is DictionaryDefinitionNode)
                {
                    return((node as DictionaryDefinitionNode).GetAnalysisResults(memberType, input));
                }
            }
            else
            {
                if (!string.IsNullOrWhiteSpace(TableName))
                {
                    // TODO: return the table's columns
                    int i = 0;
                }
                else if (_typeNameString != null && _typeNameString.Equals("string", StringComparison.OrdinalIgnoreCase))
                {
                    return(Genero4glAst.StringFunctions.Values.Where(x => input.AST.LanguageVersion >= x.MinimumLanguageVersion && input.AST.LanguageVersion <= x.MaximumLanguageVersion));
                }
                else if (_typeNameString != null && _typeNameString.Equals("text", StringComparison.OrdinalIgnoreCase))
                {
                    return(Genero4glAst.TextFunctions.Values.Where(x => input.AST.LanguageVersion >= x.MinimumLanguageVersion && input.AST.LanguageVersion <= x.MaximumLanguageVersion));
                }
                else if (_typeNameString != null && _typeNameString.Equals("byte", StringComparison.OrdinalIgnoreCase))
                {
                    return(Genero4glAst.ByteFunctions.Values.Where(x => input.AST.LanguageVersion >= x.MinimumLanguageVersion && input.AST.LanguageVersion <= x.MaximumLanguageVersion));
                }
                else
                {
                    if (ResolvedType != null &&
                        ResolvedType is TypeDefinitionNode &&
                        (ResolvedType as TypeDefinitionNode).TypeRef != null)
                    {
                        return((ResolvedType as TypeDefinitionNode).TypeRef.GetAnalysisMembers(memberType, input));
                    }

                    var gmi = new GetMultipleMembersInput
                    {
                        AST                 = input.AST,
                        MemberType          = memberType,
                        GetArrayTypeMembers = input.IsFunction
                    };

                    // try to determine if the _typeNameString is a user defined type, in which case we need to call its GetMembers function
                    IAnalysisResult udt = (input.AST as Genero4glAst).TryGetUserDefinedType(_typeNameString, LocationIndex);
                    if (udt != null)
                    {
                        return(udt.GetMembers(gmi).Select(x => x.Var).Where(y => y != null));
                    }

                    IGeneroProject definingProject;
                    IProjectEntry  projectEntry;
                    if (input.AST.ProjectEntry != null)
                    {
                        foreach (var includedFile in input.AST.ProjectEntry.GetIncludedFiles())
                        {
                            if (includedFile.Analysis != null)
                            {
                                var res = includedFile.Analysis.GetValueByIndex(_typeNameString, 1, null, null, null, false, out dummyDef, out definingProject, out projectEntry);
                                if (res != null)
                                {
                                    input.DefiningProject = definingProject;
                                    input.ProjectEntry    = projectEntry;
                                    return(res.GetMembers(gmi).Select(x => x.Var).Where(y => y != null));
                                }
                            }
                        }

                        // try to get the _typeNameString from types available in imported modules
                        if (input.AST.ProjectEntry.ParentProject.ReferencedProjects.Count > 0)
                        {
                            foreach (var refProj in input.AST.ProjectEntry.ParentProject.ReferencedProjects.Values)
                            {
                                if (refProj is GeneroProject)
                                {
                                    IProjectEntry dummyProj;
                                    udt = (refProj as GeneroProject).GetMemberOfType(_typeNameString, input.AST, false, true, false, false, out dummyProj);
                                    if (udt != null)
                                    {
                                        input.DefiningProject = refProj;
                                        input.ProjectEntry    = dummyProj;
                                        return(udt.GetMembers(gmi).Select(x => x.Var).Where(y => y != null));
                                    }
                                }
                            }
                        }
                    }


                    // check for package class
                    udt = input.AST.GetValueByIndex(_typeNameString, LocationIndex, input.AST._functionProvider, input.AST._databaseProvider, input.AST._programFileProvider, false, out dummyDef, out definingProject, out projectEntry);
                    if (udt != null)
                    {
                        input.DefiningProject = definingProject;
                        input.ProjectEntry    = projectEntry;
                        return(udt.GetMembers(gmi).Select(x => x.Var).Where(y => y != null));
                    }
                }
            }
            return(members);
        }
Exemplo n.º 16
0
        internal IEnumerable <IAnalysisResult> GetAnalysisResults(MemberType memberType, GetMemberInput input)
        {
            List <IAnalysisResult> results = new List <IAnalysisResult>();

            if (Children.Count == 1)
            {
                // get the table's columns
                var node = Children[Children.Keys[0]];
                if (node is TypeReference)
                {
                    results.AddRange((node as TypeReference).GetAnalysisMembers(memberType, input));
                }
            }
            results.AddRange(Genero4glAst.DictionaryFunctions.Values.Where(x => input.AST.LanguageVersion >= x.MinimumLanguageVersion && input.AST.LanguageVersion <= x.MaximumLanguageVersion));
            return(results);
        }
Exemplo n.º 17
0
 public IAnalysisResult GetMember(GetMemberInput input)
 {
     return(Type.GetMember(input));
 }
Exemplo n.º 18
0
 public IAnalysisResult GetMember(GetMemberInput input)
 {
     return(this.Children.Values.Cast <CreatedTableColumn>().FirstOrDefault(x => x.ColumnName.Name.Equals(input.Name, StringComparison.OrdinalIgnoreCase)));
 }