public override object VisitMethod_header([NotNull] CSharpParser.Method_headerContext context) { bool isPublic = false; var modifiers = context?.method_modifier(); if (modifiers != null) { foreach (var modifier in modifiers) { if (modifier.GetText() == Keywords.Public) { isPublic = true; } } } if (GetCurrentNamespace() == _breadcrumbNamespace && GetCurrentClass() == _breadcrumbDeclaration.Identifier && isPublic) { var methodName = context.member_name().identifier().GetText(); if (_methodDictionary.ContainsKey(methodName)) { _methodDictionary.Remove(methodName); } } VisitChildren(context); return(null); }
public override object VisitMethod_header([NotNull] CSharpParser.Method_headerContext context) { if (_isControllerClass.Peek()) { bool isNonAction = false; bool isPublic = false; var attributes = context?.attributes()?.attribute_section(); if (attributes != null) { foreach (var attributeSection in attributes) { foreach (var attribute in attributeSection.attribute_list().attribute()) { if (attribute.GetText() == "NonAction") { isNonAction = true; } } } } var modifiers = context?.method_modifier(); if (modifiers != null) { foreach (var modifier in modifiers) { if (modifier.GetText() == Keywords.Public) { isPublic = true; } } } if (!isNonAction && isPublic) { // Add endpoint info to results var currentNamespace = GetCurrentNamespace(); var currentClass = GetCurrentClass(); var actionName = context.member_name().identifier().GetText(); bool?hasId = false; var fixedParams = context?.formal_parameter_list()?.fixed_parameters()?.fixed_parameter(); if (fixedParams != null) { foreach (var fixedParam in fixedParams) { if (Regex.Match(fixedParam?.type_()?.GetText(), @"^int\??$").Success && fixedParam?.identifier()?.GetText() == "id") { hasId = true; } } } if (!Results.NamespaceDict.ContainsKey(currentNamespace)) { Results.AddControllerNamespace(currentNamespace); } if (!Results.NamespaceDict[currentNamespace].ClassDict.ContainsKey(currentClass)) { Results.NamespaceDict[currentNamespace].AddControllerClass( currentClass, GetControllerRootName(currentClass)); } if (!Results.NamespaceDict[currentNamespace] .ClassDict[currentClass] .ActionDict .ContainsKey(actionName)) { Results.NamespaceDict[currentNamespace].ClassDict[currentClass].AddControllerAction( actionName, hasId); } else { Results.NamespaceDict[currentNamespace] .ClassDict[currentClass] .ActionDict[actionName] .HasId |= hasId; } } } VisitChildren(context); return(null); }