Ancestry.Daisy.Documentation.StatementDocumentation.ExtractTitle C# (CSharp) Method

ExtractTitle() private static method

private static ExtractTitle ( ReflectionStatementDefinition reflectionStatementDefinition ) : string
reflectionStatementDefinition Ancestry.Daisy.Statements.ReflectionStatementDefinition
return string
        private static string ExtractTitle(ReflectionStatementDefinition reflectionStatementDefinition)
        {
            //Use attribute if present
            var titleAttr = reflectionStatementDefinition
                .MethodInfo.GetCustomAttributes(typeof(TitleAttribute),true)
                .OfType<TitleAttribute>()
                .Select(x => x.Title)
                .FirstOrDefault(x => !string.IsNullOrEmpty(x));
            if (titleAttr != null) return titleAttr;
            var expression = reflectionStatementDefinition.MatchingCriteria.ToString();
            if (Regex.IsMatch(expression, @"\(\?")) return reflectionStatementDefinition.MethodInfo.Name; //Compilcated regexes just use method name
            return ParseTitle(expression, reflectionStatementDefinition.Parameters);
        }