Interface ISchemeSyncProvider
Provider for scheme and structure management (Code-First).
public interface ISchemeSyncProvider
Properties
Methods
EnsureObjectSchemeAsync(string)
Get or create scheme for Object type (without Props).
Task<IRedbScheme> EnsureObjectSchemeAsync(string name)
EnsureSchemeFromTypeAsync<TProps>()
Create/get scheme by name from Props type.
Task<IRedbScheme> EnsureSchemeFromTypeAsync<TProps>() where TProps : class
GetObjectSchemeAsync(string)
Get scheme for Object type by name.
Task<IRedbScheme?> GetObjectSchemeAsync(string name)
GetSchemeAliasForType(Type)
Get scheme alias for C# class type.
string? GetSchemeAliasForType(Type type)
GetSchemeAliasForType<TProps>()
Get scheme alias for C# class type.
string? GetSchemeAliasForType<TProps>() where TProps : class
GetSchemeByNameAsync(string)
Get scheme by name.
Task<IRedbScheme?> GetSchemeByNameAsync(string schemeName)
GetSchemeByTypeAsync(Type)
Get scheme by C# class type.
Task<IRedbScheme?> GetSchemeByTypeAsync(Type type)
GetSchemeByTypeAsync<TProps>()
Get scheme by C# class type.
Task<IRedbScheme?> GetSchemeByTypeAsync<TProps>() where TProps : class
GetSchemeFromCache(string)
Get scheme from cache synchronously (no DB call).
IRedbScheme? GetSchemeFromCache(string schemeName)
GetSchemeFromCache<TProps>()
Get scheme from cache synchronously (no DB call).
IRedbScheme? GetSchemeFromCache<TProps>() where TProps : class
GetSchemeNameForType<TProps>()
Get scheme name for C# class type.
string GetSchemeNameForType<TProps>() where TProps : class
GetStructuresAsync(IRedbScheme)
Get scheme structures.
Task<List<IRedbStructure>> GetStructuresAsync(IRedbScheme scheme)
GetStructuresByTypeAsync(Type)
Get scheme structures by C# class type.
Task<List<IRedbStructure>> GetStructuresByTypeAsync(Type type)
GetStructuresByTypeAsync<TProps>()
Get scheme structures by C# class type.
Task<List<IRedbStructure>> GetStructuresByTypeAsync<TProps>() where TProps : class
GetStructureTreeAsync(long)
Get structure tree for scheme (cached).
Task<List<StructureTreeNode>> GetStructureTreeAsync(long schemeId)
GetStructureTreeCacheStats()
Get structure tree cache statistics.
(int TreesCount, int SubtreesCount, long MemoryEstimate) GetStructureTreeCacheStats()
GetSubtreeAsync(long, long?)
Get subtree starting from parent structure (cached).
Task<List<StructureTreeNode>> GetSubtreeAsync(long schemeId, long? parentStructureId)
InvalidateStructureTreeCache(long)
Invalidate structure tree cache for scheme.
void InvalidateStructureTreeCache(long schemeId)
LoadSchemeByTypeAsync(Type)
Load scheme by C# class type (throws exception if not found).
Task<IRedbScheme> LoadSchemeByTypeAsync(Type type)
LoadSchemeByTypeAsync<TProps>()
Load scheme by C# class type (throws exception if not found).
Task<IRedbScheme> LoadSchemeByTypeAsync<TProps>() where TProps : class
MigrateStructureTypeAsync(long, string, string, bool)
Migrate data when changing structure type (e.g. String -> Long).
Task<TypeMigrationResult> MigrateStructureTypeAsync(long structureId, string oldTypeName, string newTypeName, bool dryRun = false)
SchemeExistsByNameAsync(string)
Check if scheme exists by name.
Task<bool> SchemeExistsByNameAsync(string schemeName)
SchemeExistsForTypeAsync(Type)
Check if scheme exists for C# class type.
Task<bool> SchemeExistsForTypeAsync(Type type)
SchemeExistsForTypeAsync<TProps>()
Check if scheme exists for C# class type.
Task<bool> SchemeExistsForTypeAsync<TProps>() where TProps : class
SyncSchemeAsync<TProps>()
Simplified scheme synchronization method with auto-detection of name and alias.
Task<IRedbScheme> SyncSchemeAsync<TProps>() where TProps : class
SyncStructuresFromTypeAsync<TProps>(IRedbScheme, bool)
Synchronize scheme structures from Props type (by default deletes extra fields).
Task<List<IRedbStructure>> SyncStructuresFromTypeAsync<TProps>(IRedbScheme scheme, bool strictDeleteExtra = true) where TProps : class