public override async Task UpdateViewDetailsAsync(OracleObjectIdentifier objectIdentifier, ObjectDetailsModel dataModel, CancellationToken cancellationToken) { var viewCommentDataProvider = new CommentDataProvider(dataModel, objectIdentifier, null); var columnConstraintDataProvider = new ConstraintDataProvider(dataModel, objectIdentifier, null); await UpdateModelAsync(true, cancellationToken, viewCommentDataProvider, columnConstraintDataProvider); }
public override Task UpdateViewDetailsAsync(OracleObjectIdentifier schemaObject, ObjectDetailsModel dataModel, CancellationToken cancellationToken) { dataModel.Comment = "This is a view comment. "; var constraint = new ConstraintDetailsModel { DeleteRule = "Cascade", IsDeferrable = true, IsDeferred = true, IsEnabled = true, IsValidated = true, Reliability = "Enforced", LastChange = new DateTime(2015, 1, 20, 21, 31, 12), Name = "TEST_CONSTRAINT", Owner = "HUSQVIK", Type = "Reference integrity" }; dataModel.ConstraintDetails.Add(constraint); return Task.FromResult<object>(null); }
public void VisitDataObjectReference(OracleDataObjectReference objectReference) { if (TryBuildSchemaTooltip(objectReference)) { return; } if (objectReference.Type == ReferenceType.SchemaObject) { var schemaObject = objectReference.SchemaObject.GetTargetSchemaObject(); if (schemaObject == null) { return; } TableDetailsModel dataModel; var databaseModel = objectReference.Container.SemanticModel.DatabaseModel; var toolTipText = GetFullSchemaObjectToolTip(objectReference.SchemaObject); switch (schemaObject.Type) { case OracleObjectType.MaterializedView: var materializedView = (OracleMaterializedView)schemaObject; dataModel = new MaterializedViewDetailsModel { MaterializedViewTitle = toolTipText, Title = GetObjectTitle(OracleObjectIdentifier.Create(materializedView.Owner, materializedView.TableName), OracleObjectType.Table.ToLower()), MaterializedView = materializedView }; SetPartitionKeys(dataModel); databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None); ToolTip = new ToolTipMaterializedView { ScriptExtractor = databaseModel.ObjectScriptExtractor, DataContext = dataModel }; break; case OracleObjectType.Table: dataModel = new TableDetailsModel { Title = toolTipText, Table = (OracleTable)schemaObject }; SetPartitionKeys(dataModel); databaseModel.UpdateTableDetailsAsync(schemaObject.FullyQualifiedName, dataModel, CancellationToken.None); ToolTip = new ToolTipTable { ScriptExtractor = databaseModel.ObjectScriptExtractor, DataContext = dataModel }; break; case OracleObjectType.View: var objectDetailModel = new ObjectDetailsModel { Title = toolTipText, Object = schemaObject }; DocumentationDataDictionaryObject documentation; if (TryGetDataDictionaryObjectDocumentation(schemaObject.FullyQualifiedName, out documentation) && !String.IsNullOrWhiteSpace(documentation.Value)) { objectDetailModel.Comment = documentation.Value; } else { databaseModel.UpdateViewDetailsAsync(schemaObject.FullyQualifiedName, objectDetailModel, CancellationToken.None); } ToolTip = new ToolTipView { IsExtractDdlVisible = true, ScriptExtractor = databaseModel.ObjectScriptExtractor, DataContext = objectDetailModel }; break; case OracleObjectType.Sequence: ToolTip = new ToolTipSequence(toolTipText, (OracleSequence)schemaObject); break; } } else { ToolTip = new ToolTipObject { DataContext = $"{objectReference.FullyQualifiedObjectName.ToLabel()} ({objectReference.Type.ToCategoryLabel()})" }; } }
public void VisitProgramReference(OracleProgramReference programReference) { if (TryBuildSchemaTooltip(programReference)) { return; } var scriptExtractor = programReference.Container.SemanticModel.DatabaseModel.ObjectScriptExtractor; if (programReference.ObjectNode == _terminal) { var targetObject = programReference.SchemaObject.GetTargetSchemaObject(); if (targetObject != null) { var objectDetailModel = new ObjectDetailsModel { Title = GetFullSchemaObjectToolTip(programReference.SchemaObject), Comment = programReference.SchemaObject.Documentation, Object = targetObject }; ToolTip = new ToolTipView { ScriptExtractor = scriptExtractor, IsExtractDdlVisible = true, DataContext = objectDetailModel }; } return; } if (programReference.DatabaseLinkNode != null || programReference.Metadata == null) { return; } ToolTip = new ToolTipProgram(programReference.Metadata.Identifier.FullyQualifiedIdentifier, programReference.Metadata.Documentation, programReference.Metadata) { ScriptExtractor = scriptExtractor }; }
public abstract Task UpdateViewDetailsAsync(OracleObjectIdentifier objectIdentifier, ObjectDetailsModel dataModel, CancellationToken cancellationToken);