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); }
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); }
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); }