Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
        }