protected override async Task ExtractDataContextDeclarationsAsync(Solution solution, IProgress <ExtractionProgress> progress) { Dictionary <ClassDeclarationSyntax, SemanticModel> classes = await solution.GetClassesSignedWithAttributeType <DatabaseAttribute>(); foreach (var classDeclarationSyntax in classes.Keys) { var dataContextDecl = new DataContextDeclaration <LINQToSQL>(classDeclarationSyntax.Identifier.ToString() , classDeclarationSyntax.GetCompilationInfo(classes[classDeclarationSyntax])); DataContextDeclarations.Add(dataContextDecl); } }
public override void VisitVariableDeclaration(VariableDeclarationSyntax node) { ITypeSymbol typeOfNode = _model.GetTypeInfo(node).Type; if (typeOfNode.Equals(typeof(DataLoadOptions))) { this._dataLoadOptionsVariables.Add(node); } else { DataContextDeclaration <LINQToSQL> dataContextDeclaration = _dataContextDeclarations.Where(x => x.Name == typeOfNode.ToString()).FirstOrDefault(); if (dataContextDeclaration != null) { this._dataContextVariables.Add(node); var dataContextInitializationStatement = new DataContextInitializationStatement <LINQToSQL>(dataContextDeclaration, node.GetCompilationInfo(_model)); this._dataContextInitializationStatements.Add(dataContextInitializationStatement); } } base.VisitVariableDeclaration(node); }
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); }