private static DatabaseAccessingMethodCallExtractor <FakeORMToolType> GetDDAccessingMethodCallExtractorReturningOneMethodCall()
        {
            //Create fake database query for db accessing method call
            var dbEntityDeclaration = new DatabaseEntityDeclaration <FakeORMToolType>("Employee", null);
            var dbEntityDeclarationsReturnedByDbQuery = new HashSet <DatabaseEntityDeclaration <FakeORMToolType> >()
            {
                dbEntityDeclaration
            };
            var dbQueryVariable = new DatabaseQueryVariable <FakeORMToolType>("", null);

            //Create fake CompilationInfo for db accessing method call
            var methodDeclarationCompilationInfo = new CompilationInfo(null, null);
            // var methodDeclarationContainingDbAccessingMethodCall = new MethodDeclaration("GetEmployee", methodDeclarationCompilationInfo);

            var dbAccessingMethodCallCompilationInfo = new CompilationInfo(null, null);

            //Create fake db accessing method call
            DatabaseAccessingMethodCallStatement <FakeORMToolType> dbAccessingMethodCall = new DatabaseAccessingMethodCallStatement <FakeORMToolType>("", dbEntityDeclarationsReturnedByDbQuery, dbAccessingMethodCallCompilationInfo);

            dbAccessingMethodCall.SetDatabaseQueryVariable(dbQueryVariable);

            var fakeDbAccessingMethodCallExt   = new Mock <DatabaseAccessingMethodCallExtractor <FakeORMToolType> >();
            var dbAccessingMethodCallsToReturn = new HashSet <DatabaseAccessingMethodCallStatement <FakeORMToolType> >()
            {
                dbAccessingMethodCall
            };

            fakeDbAccessingMethodCallExt.Setup(f => f.DatabaseAccessingMethodCalls).Returns(dbAccessingMethodCallsToReturn);
            return(fakeDbAccessingMethodCallExt.Object);
        }
Пример #2
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);
        }
Пример #3
0
        protected override async Task ExtractDatabaseEntityDeclarationsAsync(Solution solution, IProgress <ExtractionProgress> progress)
        {
            Dictionary <ClassDeclarationSyntax, SemanticModel> classes = await solution.GetClassesSignedWithAttributeType <TableAttribute>();

            foreach (var item in classes.Keys)
            {
                var dbEntityDeclaration = new DatabaseEntityDeclaration <LINQToSQL>(item.Identifier.ToString(), item.GetCompilationInfo(classes[item]));

                DatabaseEntityDeclarations.Add(dbEntityDeclaration);
            }
        }
        public async Task Extract()
        {
            var resultDataContextExtractions = await _dataContextDeclarationExtractionStrategy.Execute();

            _dataContextDeclarations = new HashSet <DataContextDeclaration <T> >();
            foreach (var item in resultDataContextExtractions)
            {
                var dataContextDeclaration = new DataContextDeclaration <T>(item.ClassDeclarationSyntax.Identifier.ToString(), item.ClassDeclarationSyntax.GetCompilationInfo(item.SemanticModel));
                _dataContextDeclarations.Add(dataContextDeclaration);
            }

            var resultDatabaseEntities = await _databaseEntityDeclarationExtractionStrategy.Execute();

            _databaseEntityDeclarations = new HashSet <DatabaseEntityDeclaration <T> >();
            foreach (var item in resultDatabaseEntities)
            {
                var databaseEntityDeclaration = new DatabaseEntityDeclaration <T>(item.ClassDeclarationSyntax.Identifier.ToString(), item.ClassDeclarationSyntax.GetCompilationInfo(item.SemanticModel));
                _databaseEntityDeclarations.Add(databaseEntityDeclaration);
            }

            // await _databaseAccessingMethodCallStatementExtractionStrategy.Execute(parameters);
        }