protected override void Visit(VisitPath path, NotionPropertyConfiguration obj) { if (!path.Previous.HasValue) { return; } var optionalDatabaseObject = path.FindPrevious <DatabaseObject>(); if (!optionalDatabaseObject.HasValue) { _logger.LogWarning( "Unexpected path for property configuration. Did not find database that contains the property following path: {Path}", path.ToString()); return; } if (!obj.Container.HasValue) { obj.Container = optionalDatabaseObject.Value; } if (obj is RelationPropertyConfiguration relationPropertyConfiguration) { _notionCache.RegisterPropertyConfiguration( relationPropertyConfiguration.Configuration.DatabaseId, obj, relationPropertyConfiguration.Configuration.SyncedPropertyId); } _notionCache.RegisterPropertyConfiguration(optionalDatabaseObject.Value.Id, obj); }