Class RedbService

Namespace: redb.Postgres
Assembly: redb.Postgres.dll

PostgreSQL implementation of IRedbService.
Inherits all common logic from RedbServiceBase.
Only provides PostgreSQL-specific provider factories.

public class RedbService : RedbServiceBase, IRedbService, ISchemeSyncProvider, IObjectStorageProvider, ITreeProvider, IPermissionProvider, IQueryableProvider, IValidationProvider

Inheritance

ObjectRedbServiceBaseRedbService

Implements

Derived

Inherited Members

RedbServiceBase.AddNewObjectsAsync<TProps>(IEnumerable<IRedbObject<TProps>>),RedbServiceBase.AddNewObjectsAsync<TProps>(IEnumerable<IRedbObject<TProps>>, IRedbUser),RedbServiceBase.AnalyzeSchemaChangesAsync<TProps>(IRedbScheme),RedbServiceBase.Cache,RedbServiceBase.CacheDomain,RedbServiceBase.CanUserDeleteObject(long, long),RedbServiceBase.CanUserDeleteObject(IRedbObject),RedbServiceBase.CanUserDeleteObject(IRedbObject, IRedbUser),RedbServiceBase.CanUserDeleteObject(RedbObject),RedbServiceBase.CanUserDeleteObject(RedbObject, IRedbUser),RedbServiceBase.CanUserEditObject(long, long),RedbServiceBase.CanUserEditObject(IRedbObject),RedbServiceBase.CanUserEditObject(IRedbObject, IRedbUser),RedbServiceBase.CanUserEditObject(RedbObject),RedbServiceBase.CanUserEditObject(RedbObject, IRedbUser),RedbServiceBase.CanUserInsertScheme(long, long),RedbServiceBase.CanUserInsertScheme(IRedbScheme),RedbServiceBase.CanUserInsertScheme(IRedbScheme, IRedbUser),RedbServiceBase.CanUserInsertScheme(RedbObject, IRedbUser),RedbServiceBase.CanUserSelectObject(long, long),RedbServiceBase.CanUserSelectObject(IRedbObject),RedbServiceBase.CanUserSelectObject(IRedbObject, IRedbUser),RedbServiceBase.CanUserSelectObject(RedbObject),RedbServiceBase.CanUserSelectObject(RedbObject, IRedbUser),RedbServiceBase.Configuration,RedbServiceBase.Context,RedbServiceBase.ContextNotRegisteredError,RedbServiceBase.CreateChildAsync<TProps>(TreeRedbObject<TProps>, IRedbObject),RedbServiceBase.CreateChildAsync<TProps>(TreeRedbObject<TProps>, IRedbObject, IRedbUser),RedbServiceBase.CreateLazyPropsLoader(IRedbContext, ISchemeSyncProvider, IRedbObjectSerializer, RedbServiceConfiguration, string, IListProvider, ILogger?),RedbServiceBase.CreateListProvider(IRedbContext, RedbServiceConfiguration, ISchemeSyncProvider, ILogger?),RedbServiceBase.CreateObjectStorageProvider(IRedbContext, IRedbObjectSerializer, IPermissionProvider, IRedbSecurityContext, ISchemeSyncProvider, RedbServiceConfiguration, IListProvider, ILogger?),RedbServiceBase.CreatePermissionAsync(PermissionRequest, IRedbUser?),RedbServiceBase.CreatePermissionProvider(IRedbContext, IRedbSecurityContext, ILogger?),RedbServiceBase.CreateQueryableProvider(IRedbContext, IRedbObjectSerializer, ISchemeSyncProvider, IRedbSecurityContext, ILazyPropsLoader, RedbServiceConfiguration, string, ILogger?),RedbServiceBase.CreateRoleProvider(IRedbContext, IRedbSecurityContext, ILogger?),RedbServiceBase.CreateSchemeSyncProvider(IRedbContext, RedbServiceConfiguration, string, ILogger?),RedbServiceBase.CreateSystemContext(),RedbServiceBase.CreateTreeProvider(IRedbContext, IObjectStorageProvider, IPermissionProvider, IRedbObjectSerializer, IRedbSecurityContext, ISchemeSyncProvider, RedbServiceConfiguration, ILogger?),RedbServiceBase.CreateUserProvider(IRedbContext, IRedbSecurityContext, ILogger?),RedbServiceBase.CreateValidationProvider(IRedbContext, ILogger?),RedbServiceBase.DatabaseTypeName,RedbServiceBase.dbMigration,RedbServiceBase.dbSize,RedbServiceBase.dbType,RedbServiceBase.dbVersion,RedbServiceBase.DeleteAsync(long),RedbServiceBase.DeleteAsync(long, IRedbUser),RedbServiceBase.DeleteAsync(IRedbObject),RedbServiceBase.DeleteAsync(IRedbObject, IRedbUser),RedbServiceBase.DeleteAsync(IEnumerable<long>),RedbServiceBase.DeleteAsync(IEnumerable<long>, IRedbUser),RedbServiceBase.DeleteAsync(IEnumerable<IRedbObject>),RedbServiceBase.DeleteAsync(IEnumerable<IRedbObject>, IRedbUser),RedbServiceBase.DeletePermissionAsync(IRedbPermission, IRedbUser?),RedbServiceBase.DeleteSubtreeAsync(IRedbObject),RedbServiceBase.DeleteSubtreeAsync(IRedbObject, IRedbUser),RedbServiceBase.DeleteSubtreeAsync(RedbObject),RedbServiceBase.DeleteSubtreeAsync(RedbObject, IRedbUser),RedbServiceBase.DeleteWithPurgeAsync(IEnumerable<long>, int, IProgress<PurgeProgress>?, CancellationToken, long?),RedbServiceBase.EnsureDatabaseAsync(),RedbServiceBase.EnsureObjectSchemeAsync(string),RedbServiceBase.EnsureSchemeFromTypeAsync<TProps>(),RedbServiceBase.ExecuteSchemaScriptAsync(string),RedbServiceBase.GetAllEffectivePermissionsAsync(IRedbUser),RedbServiceBase.GetChildrenAsync<TProps>(IRedbObject),RedbServiceBase.GetChildrenAsync<TProps>(IRedbObject, IRedbUser),RedbServiceBase.GetDatabaseSizeSql,RedbServiceBase.GetDeletionProgressAsync(long),RedbServiceBase.GetDescendantsAsync<TProps>(IRedbObject, int?),RedbServiceBase.GetDescendantsAsync<TProps>(IRedbObject, IRedbUser, int?),RedbServiceBase.GetEffectivePermissionsAsync(IRedbUser, IRedbObject),RedbServiceBase.GetEffectivePermissionsBatchAsync(IRedbUser, IRedbObject[]),RedbServiceBase.GetEffectiveUserId(),RedbServiceBase.GetObjectJsonSql(),RedbServiceBase.GetObjectSchemeAsync(string),RedbServiceBase.GetOrphanedDeletionTasksAsync(int),RedbServiceBase.GetPathToRootAsync<TProps>(IRedbObject),RedbServiceBase.GetPathToRootAsync<TProps>(IRedbObject, IRedbUser),RedbServiceBase.GetPermissionByIdAsync(long),RedbServiceBase.GetPermissionCountAsync(),RedbServiceBase.GetPermissionsByObjectAsync(IRedbObject),RedbServiceBase.GetPermissionsByRoleAsync(IRedbRole),RedbServiceBase.GetPermissionsByUserAsync(IRedbUser),RedbServiceBase.GetPolymorphicChildrenAsync(IRedbObject),RedbServiceBase.GetPolymorphicChildrenAsync(IRedbObject, IRedbUser),RedbServiceBase.GetPolymorphicDescendantsAsync(IRedbObject, int?),RedbServiceBase.GetPolymorphicDescendantsAsync(IRedbObject, IRedbUser, int?),RedbServiceBase.GetPolymorphicPathToRootAsync(IRedbObject),RedbServiceBase.GetPolymorphicPathToRootAsync(IRedbObject, IRedbUser),RedbServiceBase.GetReadableObjectIds(),RedbServiceBase.GetReadableObjectIds(IRedbUser),RedbServiceBase.GetRolePermissionCountAsync(IRedbRole),RedbServiceBase.GetSchemaScript(),RedbServiceBase.GetSchemeAliasForType(Type),RedbServiceBase.GetSchemeAliasForType<TProps>(),RedbServiceBase.GetSchemeByIdAsync(long),RedbServiceBase.GetSchemeByNameAsync(string),RedbServiceBase.GetSchemeByTypeAsync(Type),RedbServiceBase.GetSchemeByTypeAsync<TProps>(),RedbServiceBase.GetSchemeFromCache(string),RedbServiceBase.GetSchemeFromCache<TProps>(),RedbServiceBase.GetSchemeNameForType(Type),RedbServiceBase.GetSchemeNameForType<TProps>(),RedbServiceBase.GetSchemesAsync(),RedbServiceBase.GetStructuresAsync(IRedbScheme),RedbServiceBase.GetStructuresByTypeAsync(Type),RedbServiceBase.GetStructuresByTypeAsync<TProps>(),RedbServiceBase.GetStructureTreeAsync(long),RedbServiceBase.GetStructureTreeCacheStats(),RedbServiceBase.GetSubtreeAsync(long, long?),RedbServiceBase.GetSupportedTypesAsync(),RedbServiceBase.GetTreeProvider(),RedbServiceBase.GetUserActiveDeletionsAsync(long),RedbServiceBase.GetUserPermissionCountAsync(IRedbUser),RedbServiceBase.GetVersionSql,RedbServiceBase.GrantPermissionAsync(IRedbRole, IRedbObject, PermissionAction, IRedbUser?),RedbServiceBase.GrantPermissionAsync(IRedbUser, IRedbObject, PermissionAction, IRedbUser?),RedbServiceBase.InitializeAsync(bool, params Assembly[]),RedbServiceBase.InitializeAsync(params Assembly[]),RedbServiceBase.InitializeTypeRegistryAsync(),RedbServiceBase.InvalidateStructureTreeCache(long),RedbServiceBase.ListCache,RedbServiceBase.ListProvider,RedbServiceBase.LoadAsync(IEnumerable<long>, int, bool?),RedbServiceBase.LoadAsync(IEnumerable<long>, IRedbUser, int, bool?),RedbServiceBase.LoadAsync<TProps>(long, int, bool?),RedbServiceBase.LoadAsync<TProps>(long, IRedbUser, int, bool?),RedbServiceBase.LoadAsync<TProps>(IRedbObject, int, bool?),RedbServiceBase.LoadAsync<TProps>(IRedbObject, IRedbUser, int, bool?),RedbServiceBase.LoadPolymorphicTreeAsync(IRedbObject, int?),RedbServiceBase.LoadPolymorphicTreeAsync(IRedbObject, IRedbUser, int?),RedbServiceBase.LoadSchemeByTypeAsync(Type),RedbServiceBase.LoadSchemeByTypeAsync<TProps>(),RedbServiceBase.LoadTreeAsync<TProps>(long, int?),RedbServiceBase.LoadTreeAsync<TProps>(long, IRedbUser, int?),RedbServiceBase.LoadTreeAsync<TProps>(IRedbObject, int?),RedbServiceBase.LoadTreeAsync<TProps>(IRedbObject, IRedbUser, int?),RedbServiceBase.MigrateStructureTypeAsync(long, string, string, bool),RedbServiceBase.MoveObjectAsync(IRedbObject, IRedbObject?),RedbServiceBase.MoveObjectAsync(IRedbObject, IRedbObject?, IRedbUser),RedbServiceBase.PropsCache,RedbServiceBase.PurgeTrashAsync(long, int, int, IProgress<PurgeProgress>?, CancellationToken),RedbServiceBase.Query<TProps>(),RedbServiceBase.Query<TProps>(IRedbUser),RedbServiceBase.ReadEmbeddedSql(),RedbServiceBase.RevokeAllRolePermissionsAsync(IRedbRole, IRedbUser?),RedbServiceBase.RevokeAllUserPermissionsAsync(IRedbUser, IRedbUser?),RedbServiceBase.RevokePermissionAsync(IRedbRole, IRedbObject, IRedbUser?),RedbServiceBase.RevokePermissionAsync(IRedbUser, IRedbObject, IRedbUser?),RedbServiceBase.RoleProvider,RedbServiceBase.SaveAsync(IRedbObject),RedbServiceBase.SaveAsync(IRedbObject, IRedbUser),RedbServiceBase.SaveAsync(IEnumerable<IRedbObject>),RedbServiceBase.SaveAsync(IEnumerable<IRedbObject>, IRedbUser),RedbServiceBase.SaveAsync<TProps>(IRedbObject<TProps>),RedbServiceBase.SaveAsync<TProps>(IRedbObject<TProps>, IRedbUser),RedbServiceBase.SchemeExistsByNameAsync(string),RedbServiceBase.SchemeExistsForTypeAsync(Type),RedbServiceBase.SchemeExistsForTypeAsync<TProps>(),RedbServiceBase.SecurityContext,RedbServiceBase.SetCurrentUser(IRedbUser),RedbServiceBase.SoftDeleteAsync(IEnumerable<long>, long?),RedbServiceBase.SoftDeleteAsync(IEnumerable<long>, IRedbUser, long?),RedbServiceBase.SoftDeleteAsync(IEnumerable<IRedbObject>, long?),RedbServiceBase.SoftDeleteAsync(IEnumerable<IRedbObject>, IRedbUser, long?),RedbServiceBase.SqlDialect,RedbServiceBase.SyncSchemeAsync<TProps>(),RedbServiceBase.SyncStructuresFromTypeAsync<TProps>(IRedbScheme, bool),RedbServiceBase.TableExistsAsync(string),RedbServiceBase.TreeQuery<TProps>(),RedbServiceBase.TreeQuery<TProps>(long, int?),RedbServiceBase.TreeQuery<TProps>(long, IRedbUser, int?),RedbServiceBase.TreeQuery<TProps>(IRedbObject?, int?),RedbServiceBase.TreeQuery<TProps>(IRedbObject?, IRedbUser, int?),RedbServiceBase.TreeQuery<TProps>(IRedbUser),RedbServiceBase.TreeQuery<TProps>(IEnumerable<long>, int?),RedbServiceBase.TreeQuery<TProps>(IEnumerable<long>, IRedbUser, int?),RedbServiceBase.TreeQuery<TProps>(IEnumerable<IRedbObject>, int?),RedbServiceBase.TreeQuery<TProps>(IEnumerable<IRedbObject>, IRedbUser, int?),RedbServiceBase.TryClaimOrphanedTaskAsync(long, int),RedbServiceBase.UpdateConfiguration(Action<RedbServiceConfiguration>),RedbServiceBase.UpdateConfiguration(Action<RedbServiceConfigurationBuilder>),RedbServiceBase.UpdatePermissionAsync(IRedbPermission, PermissionRequest, IRedbUser?),RedbServiceBase.UserProvider,RedbServiceBase.ValidatePropertyConstraints(Type, string, bool, bool),RedbServiceBase.ValidateSchemaAsync<TProps>(IRedbScheme, bool),RedbServiceBase.ValidateSchemaAsync<TProps>(string, bool),RedbServiceBase.ValidateTypeAsync(Type, string),RedbServiceBase.WarmupMetadataCacheAsync()

Properties

ContextNotRegisteredError

Error message when IRedbContext is not registered.

protected override string ContextNotRegisteredError { get; }

DatabaseTypeName

Database provider name (e.g., "PostgreSQL", "MSSql").

protected override string DatabaseTypeName { get; }

GetDatabaseSizeSql

SQL query to get database size in bytes.

protected override string GetDatabaseSizeSql { get; }

GetVersionSql

SQL query to get database version.

protected override string GetVersionSql { get; }

SqlDialect

SQL dialect for database-specific queries.

protected override ISqlDialect SqlDialect { get; }

Methods

CreateLazyPropsLoader(IRedbContext, ISchemeSyncProvider, IRedbObjectSerializer, RedbServiceConfiguration, string, IListProvider, ILogger?)

Create lazy props loader.

protected override ILazyPropsLoader CreateLazyPropsLoader(IRedbContext context, ISchemeSyncProvider schemeSync, IRedbObjectSerializer serializer, RedbServiceConfiguration config, string cacheDomain, IListProvider listProvider, ILogger? logger)

CreateListProvider(IRedbContext, RedbServiceConfiguration, ISchemeSyncProvider, ILogger?)

Create list provider.

protected override IListProvider CreateListProvider(IRedbContext context, RedbServiceConfiguration config, ISchemeSyncProvider schemeSync, ILogger? logger)

CreateObjectStorageProvider(IRedbContext, IRedbObjectSerializer, IPermissionProvider, IRedbSecurityContext, ISchemeSyncProvider, RedbServiceConfiguration, IListProvider, ILogger?)

Create object storage provider.

protected override IObjectStorageProvider CreateObjectStorageProvider(IRedbContext context, IRedbObjectSerializer serializer, IPermissionProvider permissionProvider, IRedbSecurityContext securityContext, ISchemeSyncProvider schemeSync, RedbServiceConfiguration config, IListProvider listProvider, ILogger? logger)

CreatePermissionProvider(IRedbContext, IRedbSecurityContext, ILogger?)

Create permission provider.

protected override IPermissionProvider CreatePermissionProvider(IRedbContext context, IRedbSecurityContext securityContext, ILogger? logger)

CreateQueryableProvider(IRedbContext, IRedbObjectSerializer, ISchemeSyncProvider, IRedbSecurityContext, ILazyPropsLoader, RedbServiceConfiguration, string, ILogger?)

Create queryable provider.

protected override IQueryableProvider CreateQueryableProvider(IRedbContext context, IRedbObjectSerializer serializer, ISchemeSyncProvider schemeSync, IRedbSecurityContext securityContext, ILazyPropsLoader lazyPropsLoader, RedbServiceConfiguration config, string cacheDomain, ILogger? logger)

CreateRoleProvider(IRedbContext, IRedbSecurityContext, ILogger?)

Create role provider.

protected override IRoleProvider CreateRoleProvider(IRedbContext context, IRedbSecurityContext securityContext, ILogger? logger)

CreateSchemeSyncProvider(IRedbContext, RedbServiceConfiguration, string, ILogger?)

Create scheme sync provider.

protected override ISchemeSyncProvider CreateSchemeSyncProvider(IRedbContext context, RedbServiceConfiguration config, string cacheDomain, ILogger? logger)

CreateTreeProvider(IRedbContext, IObjectStorageProvider, IPermissionProvider, IRedbObjectSerializer, IRedbSecurityContext, ISchemeSyncProvider, RedbServiceConfiguration, ILogger?)

Create tree provider.

protected override ITreeProvider CreateTreeProvider(IRedbContext context, IObjectStorageProvider objectStorage, IPermissionProvider permissionProvider, IRedbObjectSerializer serializer, IRedbSecurityContext securityContext, ISchemeSyncProvider schemeSync, RedbServiceConfiguration config, ILogger? logger)

CreateUserProvider(IRedbContext, IRedbSecurityContext, ILogger?)

Create user provider.

protected override IUserProvider CreateUserProvider(IRedbContext context, IRedbSecurityContext securityContext, ILogger? logger)

CreateValidationProvider(IRedbContext, ILogger?)

Create validation provider.

protected override IValidationProvider CreateValidationProvider(IRedbContext context, ILogger? logger)

ExecuteSchemaScriptAsync(string)

Executes the full schema initialization SQL script against the database.

protected override Task ExecuteSchemaScriptAsync(string sql)

GetObjectJsonSql()

Get SQL for loading object as JSON. Override in derived classes for DB-specific syntax.

protected override string GetObjectJsonSql()

ReadEmbeddedSql()

Reads the embedded combined SQL initialization script (redb_init.sql).

protected override string ReadEmbeddedSql()

TableExistsAsync(string)

Checks whether the specified table exists in the database.

protected override Task<bool> TableExistsAsync(string tableName)

Constructors

RedbService(IServiceProvider)

Creates a new PostgreSQL RedbService instance.