Beispiel #1
0
        private static SyntaxTriviaList BuildDbSetComment(string targetName, string objectType)
        {
            if (targetName.IsNullOrWhiteSpace())
            {
                throw new ArgumentNullException(nameof(targetName));
            }
            if (objectType.IsNullOrWhiteSpace())
            {
                throw new ArgumentNullException(nameof(objectType));
            }

            return(SyntaxUtilities.BuildCommentTrivia(new XmlNodeSyntax[]
            {
                XmlText("Accesses the "),
                XmlElement("c", SingletonList <XmlNodeSyntax>(XmlText(targetName))),
                XmlText(" " + objectType + ".")
            }));
        }
        private static SyntaxTriviaList BuildColumnComment(Identifier columnName, Option <IRelationalDatabaseTableComments> comment)
        {
            if (columnName == null)
            {
                throw new ArgumentNullException(nameof(columnName));
            }

            return(comment
                   .Bind(c => c.ColumnComments.TryGetValue(columnName, out var cc) ? cc : Option <string> .None)
                   .Match(
                       SyntaxUtilities.BuildCommentTrivia,
                       () => SyntaxUtilities.BuildCommentTrivia(new XmlNodeSyntax[]
            {
                XmlText("The "),
                XmlElement("c", SingletonList <XmlNodeSyntax>(XmlText(columnName.LocalName))),
                XmlText(" column.")
            })
                       ));
        }
        private static SyntaxTriviaList BuildTableComment(Identifier tableName, Option <IRelationalDatabaseTableComments> comment)
        {
            if (tableName == null)
            {
                throw new ArgumentNullException(nameof(tableName));
            }

            return(comment
                   .Bind(c => c.Comment)
                   .Match(
                       SyntaxUtilities.BuildCommentTrivia,
                       () => SyntaxUtilities.BuildCommentTrivia(new XmlNodeSyntax[]
            {
                XmlText("A mapping class to query the "),
                XmlElement("c", SingletonList <XmlNodeSyntax>(XmlText(tableName.LocalName))),
                XmlText(" table.")
            })
                       ));
        }
        private static SyntaxTriviaList BuildChildKeyComment(IDatabaseRelationalKey relationalKey)
        {
            if (relationalKey == null)
            {
                throw new ArgumentNullException(nameof(relationalKey));
            }

            var hasChildKeyName    = relationalKey.ChildKey.Name.IsSome;
            var foreignKeyNameNode = relationalKey.ChildKey.Name.Match(
                name => XmlElement("c", SingletonList <XmlNodeSyntax>(XmlText(name.LocalName))),
                () => XmlText(string.Empty) as XmlNodeSyntax
                );

            return(SyntaxUtilities.BuildCommentTrivia(new XmlNodeSyntax[]
            {
                XmlText("The" + (hasChildKeyName ? " " : string.Empty)),
                foreignKeyNameNode,
                XmlText(" child key. Navigates from "),
                XmlElement("c", SingletonList <XmlNodeSyntax>(XmlText(relationalKey.ParentTable.LocalName))),
                XmlText(" to "),
                XmlElement("c", SingletonList <XmlNodeSyntax>(XmlText(relationalKey.ChildTable.LocalName))),
                XmlText(".")
            }));
        }
        private static SyntaxTriviaList BuildForeignKeyComment(IDatabaseRelationalKey relationalKey, Option <IRelationalDatabaseTableComments> comment)
        {
            if (relationalKey == null)
            {
                throw new ArgumentNullException(nameof(relationalKey));
            }

            var hasChildKeyName = relationalKey.ChildKey.Name.IsSome;

            return(comment
                   .Bind(c => relationalKey.ChildKey.Name
                         .Match(
                             ckName => c.ForeignKeyComments.TryGetValue(ckName, out var fkc) ? fkc : Option <string> .None,
                             () => Option <string> .None))
                   .Match(
                       SyntaxUtilities.BuildCommentTrivia,
                       () =>
            {
                var foreignKeyNameNode = relationalKey.ChildKey.Name.Match(
                    name => XmlElement("c", SingletonList <XmlNodeSyntax>(XmlText(name.LocalName))),
                    () => XmlText(string.Empty) as XmlNodeSyntax
                    );

                return SyntaxUtilities.BuildCommentTrivia(new XmlNodeSyntax[]
                {
                    XmlText("The" + (hasChildKeyName ? " " : string.Empty)),
                    foreignKeyNameNode,
                    XmlText(" foreign key. Navigates from "),
                    XmlElement("c", SingletonList <XmlNodeSyntax>(XmlText(relationalKey.ChildTable.LocalName))),
                    XmlText(" to "),
                    XmlElement("c", SingletonList <XmlNodeSyntax>(XmlText(relationalKey.ParentTable.LocalName))),
                    XmlText(".")
                });
            }
                       ));
        }