Esempio n. 1
0
        public ParsedEntity ParseCode(string code)
        {
            if (string.IsNullOrWhiteSpace(code))
            {
                return(null);
            }

            var syntaxTree = CSharpSyntaxTree.ParseText(code);
            var root       = (CompilationUnitSyntax)syntaxTree.GetRoot();

            var visitor = new MappingVisitor();

            visitor.Visit(root);

            var parsedEntity = visitor.ParsedEntity;

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

            this._logger.LogDebug(
                "Parsed Mapping Class: '{0}'; Properties: {1}; Relationships: {2}",
                parsedEntity.MappingClass,
                parsedEntity.Properties.Count,
                parsedEntity.Relationships.Count);

            return(parsedEntity);
        }
        public ParsedEntity Parse(string mappingFile)
        {
            if (string.IsNullOrEmpty(mappingFile) || !File.Exists(mappingFile))
            {
                return(null);
            }

            var code       = File.ReadAllText(mappingFile);
            var syntaxTree = CSharpSyntaxTree.ParseText(code);
            var root       = (CompilationUnitSyntax)syntaxTree.GetRoot();

            var visitor = new MappingVisitor();

            visitor.Visit(root);

            var parsedEntity = visitor.ParsedEntity;

            if (parsedEntity != null)
            {
                _logger.LogDebug(
                    "Parsed Mapping File: '{0}'; Properties: {1}; Relationships: {2}",
                    Path.GetFileName(mappingFile),
                    parsedEntity.Properties.Count,
                    parsedEntity.Relationships.Count);
            }

            return(parsedEntity);
        }