Beispiel #1
0
        public void WithDatabaseAccessingMEthodCallLoadingVariable(DatabaseEntityVariable <LINQToSQL> dbEntityVariable)
        {
            var customerEntityDeclaration = new DatabaseEntityDeclaration <LINQToSQL>("Customer");
            var orderEntityDeclaration    = new DatabaseEntityDeclaration <LINQToSQL>("Order");

            var entityDeclarationsUsedInQuery = new List <DatabaseEntityDeclaration <LINQToSQL> >()
            {
                customerEntityDeclaration
            };
            DatabaseQueryVariable databaseQueryVariable = null;

            var dbQuery = new DatabaseQuery <LINQToSQL>("(from c in dc.Customers where c.Id=1 select c)", entityDeclarationsUsedInQuery, databaseQueryVariable);
            var dbAccessingMethodCall = new DatabaseAccessingMethodCallStatement <LINQToSQL>(dbQuery, null);

            var entityDeclarationsLoadedByDbCall = new List <DatabaseEntityDeclaration <LINQToSQL> >()
            {
                customerEntityDeclaration, orderEntityDeclaration
            };

            dbAccessingMethodCall.SetLoadedEntityDeclarations(entityDeclarationsLoadedByDbCall);

            var dbAccessingMethodCallNode = new ORMModelNode(dbAccessingMethodCall);

            Tree.RootNode.ChildNodes.Add(dbAccessingMethodCallNode);
        }
Beispiel #2
0
        public ORMModelTreeGenerator()
        {
            var rootMethodDeclaration = new MethodDeclaration("Main", null);
            var rootNode = new ORMModelNode(rootMethodDeclaration);

            Tree = new ORMModelTree(rootNode);
        }
Beispiel #3
0
        public ORMModelTreeGenerator WithDatabaseEntityVariableAssignedByDatabaseAccessingMethodCall()
        {
            dbAccessingMethodCall.SetAssignedVariable(databaseEntityObject);
            var dbEntityObjectNode = new ORMModelNode(databaseEntityObject);

            Tree.RootNode.ChildNodes.Add(dbEntityObjectNode);

            return(this);
        }
Beispiel #4
0
        public ORMModelTreeGenerator WithCallToRelatedEntityOnDatabaseEntityVariableAssignedByDatabaseAccessingMethodCall()
        {
            var databaseEntityRelatedObjectCall = new DatabaseEntityVariableRelatedEntityCallStatement <LINQToSQL>(databaseEntityObject, null);

            var databaseEntityRelatedObjectCallNode = new ORMModelNode(databaseEntityRelatedObjectCall);

            Tree.RootNode.ChildNodes.Add(databaseEntityRelatedObjectCallNode);

            return(this);
        }
Beispiel #5
0
        private void Visit(MethodDeclarationBase model)
        {
            if (this.ORMModelTree.RootNode != null)
            {
                throw new ArgumentException("There can only be one MethodDeclaration in an ORMModelTree.");
            }
            var rootNode = new ORMModelNode(model);

            this.ORMModelTree = new ORMModelTree(rootNode);

            SetLastVisitedNode(rootNode);
        }
Beispiel #6
0
        public ORMModelTreeGenerator WithEagerLoadingDatabaseAccessingMethodCall()
        {
            dbAccessingMethodCall = GetDatabaseAccessingMethodCall();
            var entityDeclarationsLoadedByDbCall = new List <DatabaseEntityDeclaration <LINQToSQL> >()
            {
                customerEntityDeclaration, orderEntityDeclaration
            };

            dbAccessingMethodCall.SetLoadedEntityDeclarations(entityDeclarationsLoadedByDbCall);

            var dbAccessingMethodCallNode = new ORMModelNode(dbAccessingMethodCall);

            Tree.RootNode.ChildNodes.Add(dbAccessingMethodCallNode);

            return(this);
        }
        public ORMModelTree Extract(MethodDeclarationSyntax methodDeclarationSyntaxNode)
        {
            var methodDeclaration = new MethodDeclaration(methodDeclarationSyntaxNode.Identifier.Text, methodDeclarationSyntaxNode.GetCompilationInfo());

            this._ORMModelTree = new ORMModelTree(new ORMModelNode(methodDeclaration));

            var extractor = new LINQToSQLDatabaseAccessingMethodCallExtractor(null, null, _databaseQueries.ToList(), null, null, null);

            extractor.Visit(methodDeclarationSyntaxNode);

            foreach (var dbAccessingMethodCall in extractor.DatabaseAccessingMethodCalls)
            {
                var ORMModelNode = new ORMModelNode(dbAccessingMethodCall);
                _ORMModelTree.RootNode.ChildNodes.Add(ORMModelNode);
            }

            return(_ORMModelTree);
        }
Beispiel #8
0
        public void Visit(ModelBase model)
        {
            if (model is MethodDeclarationBase)
            {
                this.Visit(model as MethodDeclarationBase);
            }
            else
            {
                var node = new ORMModelNode(model);

                if (_LastVisitedNode is LoopDeclarationBase)
                {
                    _LastVisitedNode.ChildNodes.Add(node);
                }
                else
                {
                    ORMModelTree.RootNode.ChildNodes.Add(node);
                    _LastVisitedNode = node;
                }
            }
        }
Beispiel #9
0
 private void SetLastVisitedNode(ORMModelNode node)
 {
     _LastVisitedNode = node;
 }