コード例 #1
0
    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);
    }