public override void Visit(CreateDatabaseStatement node) { foreach (FileGroupDefinition fg in node.FileGroups) { foreach (FileDeclaration fileDecl in fg.FileDeclarations) { // The Primary filegroup is where the database's MDF file will be present if (fileDecl.IsPrimary) { NameFileDeclarationOption nameOption = fileDecl.Options.SingleOrDefault( opt => opt.OptionKind == FileDeclarationOptionKind.Name) as NameFileDeclarationOption; if (nameOption == null) { continue; } // Verify that the filename has the pattern "$(DatabaseName)", and overwrite if (string.Compare(nameOption.LogicalFileName.Identifier.Value, DatabaseNameVariable, StringComparison.OrdinalIgnoreCase) == 0) { FileNameFileDeclarationOption fileNameOption = fileDecl.Options.SingleOrDefault( opt => opt.OptionKind == FileDeclarationOptionKind.FileName) as FileNameFileDeclarationOption; if (fileNameOption != null) { fileNameOption.OSFileName = new StringLiteral { Value = _databaseFileName, IsNational = false }; } } } } } foreach (FileDeclaration logFile in node.LogOn) { NameFileDeclarationOption nameOption = logFile.Options.SingleOrDefault( opt => opt.OptionKind == FileDeclarationOptionKind.Name) as NameFileDeclarationOption; if (nameOption == null) { continue; } if (string.Compare(nameOption.LogicalFileName.Identifier.Value, DatabaseLogNameVariable, StringComparison.OrdinalIgnoreCase) == 0) { FileNameFileDeclarationOption fileNameOption = logFile.Options.SingleOrDefault( opt => opt.OptionKind == FileDeclarationOptionKind.FileName) as FileNameFileDeclarationOption; if (fileNameOption != null) { fileNameOption.OSFileName = new StringLiteral { Value = _logFileName, IsNational = false }; } } } }
public override void Visit(NameFileDeclarationOption node) { this.action(node); }
public override void ExplicitVisit(NameFileDeclarationOption fragment) { _fragments.Add(fragment); }