├── .editorconfig ├── .gitignore ├── EOL.gitattributes ├── LICENSE ├── README.md ├── img ├── CSharp-Toolkit-Icon.png ├── example-access-authorizer.png └── example-azure-table-storage.png └── src ├── Example ├── Apis │ ├── Apis.csproj │ ├── Foundation │ │ ├── ControllerBase.cs │ │ ├── GlobalSuppressions.cs │ │ ├── Program.cs │ │ └── TenantHeader.cs │ ├── Properties │ │ └── launchSettings.json │ ├── TenantController.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── Contracts │ ├── Contracts.csproj │ ├── Foundation │ │ ├── Contracts.GlobalUsings.cs │ │ ├── ErrorNr.cs │ │ └── Result.cs │ └── TenantContract.cs └── Services.Tenant │ ├── Foundation │ ├── Errors.cs │ ├── GlobalSuppressions.cs │ ├── GlobalUsings.cs │ └── GrainBase.cs │ ├── Services.Tenant.csproj │ ├── TenantGrain.cs │ └── UserGrain.cs ├── NuGet.config ├── Orleans.Multitenant.sln ├── Orleans.Multitenant ├── CSharp-Toolkit-Icon.png ├── Extensions.cs ├── ICrossTenantAuthorizer.cs ├── IGrainCallTenantSeparator.cs ├── Internal │ ├── AsyncLock.cs │ ├── Extensions.cs │ ├── ITenantGrainStorageFactory.cs │ ├── Logging.cs │ ├── SiloLifecycle.cs │ ├── StorageProvider.cs │ ├── TenantGrainStorageFactory.cs │ ├── TenantSeparatingCallFilter.cs │ ├── TenantSeparatingStreamFilter.cs │ ├── TenantStreamObservers.cs │ └── Usings.cs ├── MultitenantStorageOptions.cs ├── Orleans.Multitenant.csproj ├── Readme.md ├── TenantGrainFactory.cs └── TenantStreamProvider.cs └── Tests ├── Examples ├── AuthorizedStreaming.cs ├── Extensibility.cs ├── GrainCalling.cs └── UnauthorizedStreaming.cs ├── Foundation ├── ClusterFixture.cs ├── GlobalSuppressions.cs ├── ProcessingLogger.cs ├── TestCollections.cs ├── TestingUtils.cs └── Usings.cs ├── Orleans.Multitenant.Tests.csproj └── UnitTests ├── AuthorizedStreamingTests.cs ├── ExtensibilityTests.cs ├── GrainCallingTests.cs ├── NoTenantIdTests.cs ├── TenantIdTests.cs └── UnauthorizedStreamingTests.cs /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/.gitignore -------------------------------------------------------------------------------- /EOL.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/EOL.gitattributes -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/README.md -------------------------------------------------------------------------------- /img/CSharp-Toolkit-Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/img/CSharp-Toolkit-Icon.png -------------------------------------------------------------------------------- /img/example-access-authorizer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/img/example-access-authorizer.png -------------------------------------------------------------------------------- /img/example-azure-table-storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/img/example-azure-table-storage.png -------------------------------------------------------------------------------- /src/Example/Apis/Apis.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Apis/Apis.csproj -------------------------------------------------------------------------------- /src/Example/Apis/Foundation/ControllerBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Apis/Foundation/ControllerBase.cs -------------------------------------------------------------------------------- /src/Example/Apis/Foundation/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Apis/Foundation/GlobalSuppressions.cs -------------------------------------------------------------------------------- /src/Example/Apis/Foundation/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Apis/Foundation/Program.cs -------------------------------------------------------------------------------- /src/Example/Apis/Foundation/TenantHeader.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Apis/Foundation/TenantHeader.cs -------------------------------------------------------------------------------- /src/Example/Apis/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Apis/Properties/launchSettings.json -------------------------------------------------------------------------------- /src/Example/Apis/TenantController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Apis/TenantController.cs -------------------------------------------------------------------------------- /src/Example/Apis/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Apis/appsettings.Development.json -------------------------------------------------------------------------------- /src/Example/Apis/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Apis/appsettings.json -------------------------------------------------------------------------------- /src/Example/Contracts/Contracts.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Contracts/Contracts.csproj -------------------------------------------------------------------------------- /src/Example/Contracts/Foundation/Contracts.GlobalUsings.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Contracts/Foundation/Contracts.GlobalUsings.cs -------------------------------------------------------------------------------- /src/Example/Contracts/Foundation/ErrorNr.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Contracts/Foundation/ErrorNr.cs -------------------------------------------------------------------------------- /src/Example/Contracts/Foundation/Result.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Contracts/Foundation/Result.cs -------------------------------------------------------------------------------- /src/Example/Contracts/TenantContract.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Contracts/TenantContract.cs -------------------------------------------------------------------------------- /src/Example/Services.Tenant/Foundation/Errors.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Services.Tenant/Foundation/Errors.cs -------------------------------------------------------------------------------- /src/Example/Services.Tenant/Foundation/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Services.Tenant/Foundation/GlobalSuppressions.cs -------------------------------------------------------------------------------- /src/Example/Services.Tenant/Foundation/GlobalUsings.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Services.Tenant/Foundation/GlobalUsings.cs -------------------------------------------------------------------------------- /src/Example/Services.Tenant/Foundation/GrainBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Services.Tenant/Foundation/GrainBase.cs -------------------------------------------------------------------------------- /src/Example/Services.Tenant/Services.Tenant.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Services.Tenant/Services.Tenant.csproj -------------------------------------------------------------------------------- /src/Example/Services.Tenant/TenantGrain.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Services.Tenant/TenantGrain.cs -------------------------------------------------------------------------------- /src/Example/Services.Tenant/UserGrain.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Example/Services.Tenant/UserGrain.cs -------------------------------------------------------------------------------- /src/NuGet.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/NuGet.config -------------------------------------------------------------------------------- /src/Orleans.Multitenant.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant.sln -------------------------------------------------------------------------------- /src/Orleans.Multitenant/CSharp-Toolkit-Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/CSharp-Toolkit-Icon.png -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Extensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Extensions.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/ICrossTenantAuthorizer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/ICrossTenantAuthorizer.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/IGrainCallTenantSeparator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/IGrainCallTenantSeparator.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/AsyncLock.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/AsyncLock.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/Extensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/Extensions.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/ITenantGrainStorageFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/ITenantGrainStorageFactory.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/Logging.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/Logging.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/SiloLifecycle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/SiloLifecycle.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/StorageProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/StorageProvider.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/TenantGrainStorageFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/TenantGrainStorageFactory.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/TenantSeparatingCallFilter.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/TenantSeparatingCallFilter.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/TenantSeparatingStreamFilter.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/TenantSeparatingStreamFilter.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/TenantStreamObservers.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Internal/TenantStreamObservers.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Internal/Usings.cs: -------------------------------------------------------------------------------- 1 | global using System.Diagnostics.CodeAnalysis; 2 | -------------------------------------------------------------------------------- /src/Orleans.Multitenant/MultitenantStorageOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/MultitenantStorageOptions.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Orleans.Multitenant.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Orleans.Multitenant.csproj -------------------------------------------------------------------------------- /src/Orleans.Multitenant/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/Readme.md -------------------------------------------------------------------------------- /src/Orleans.Multitenant/TenantGrainFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/TenantGrainFactory.cs -------------------------------------------------------------------------------- /src/Orleans.Multitenant/TenantStreamProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Orleans.Multitenant/TenantStreamProvider.cs -------------------------------------------------------------------------------- /src/Tests/Examples/AuthorizedStreaming.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Examples/AuthorizedStreaming.cs -------------------------------------------------------------------------------- /src/Tests/Examples/Extensibility.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Examples/Extensibility.cs -------------------------------------------------------------------------------- /src/Tests/Examples/GrainCalling.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Examples/GrainCalling.cs -------------------------------------------------------------------------------- /src/Tests/Examples/UnauthorizedStreaming.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Examples/UnauthorizedStreaming.cs -------------------------------------------------------------------------------- /src/Tests/Foundation/ClusterFixture.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Foundation/ClusterFixture.cs -------------------------------------------------------------------------------- /src/Tests/Foundation/GlobalSuppressions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Foundation/GlobalSuppressions.cs -------------------------------------------------------------------------------- /src/Tests/Foundation/ProcessingLogger.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Foundation/ProcessingLogger.cs -------------------------------------------------------------------------------- /src/Tests/Foundation/TestCollections.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Foundation/TestCollections.cs -------------------------------------------------------------------------------- /src/Tests/Foundation/TestingUtils.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Foundation/TestingUtils.cs -------------------------------------------------------------------------------- /src/Tests/Foundation/Usings.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Foundation/Usings.cs -------------------------------------------------------------------------------- /src/Tests/Orleans.Multitenant.Tests.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/Orleans.Multitenant.Tests.csproj -------------------------------------------------------------------------------- /src/Tests/UnitTests/AuthorizedStreamingTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/UnitTests/AuthorizedStreamingTests.cs -------------------------------------------------------------------------------- /src/Tests/UnitTests/ExtensibilityTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/UnitTests/ExtensibilityTests.cs -------------------------------------------------------------------------------- /src/Tests/UnitTests/GrainCallingTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/UnitTests/GrainCallingTests.cs -------------------------------------------------------------------------------- /src/Tests/UnitTests/NoTenantIdTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/UnitTests/NoTenantIdTests.cs -------------------------------------------------------------------------------- /src/Tests/UnitTests/TenantIdTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/UnitTests/TenantIdTests.cs -------------------------------------------------------------------------------- /src/Tests/UnitTests/UnauthorizedStreamingTests.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VincentH-Net/Orleans.Multitenant/HEAD/src/Tests/UnitTests/UnauthorizedStreamingTests.cs --------------------------------------------------------------------------------