summary refs log tree commit diff
path: root/ModAS.Server/Services/UserContextService.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--ModAS.Server/Services/UserContextService.cs32
1 files changed, 32 insertions, 0 deletions
diff --git a/ModAS.Server/Services/UserContextService.cs b/ModAS.Server/Services/UserContextService.cs
new file mode 100644

index 0000000..23969cc --- /dev/null +++ b/ModAS.Server/Services/UserContextService.cs
@@ -0,0 +1,32 @@ +// using System.Collections.Concurrent; +// using System.Text.Json.Serialization; +// using ArcaneLibs.Extensions; +// using LibMatrix.Homeservers; +// using MxApiExtensions.Services; +// +// namespace ModAS.Server.Services; +// +// public class UserContextService(ModASConfiguration config, AuthenticatedHomeserverProviderService hsProvider) { +// internal static ConcurrentDictionary<string, UserContext> UserContextStore { get; set; } = new(); +// public readonly int SessionCount = UserContextStore.Count; +// +// public class UserContext { +// [JsonIgnore] +// public AuthenticatedHomeserverGeneric Homeserver { get; set; } +// } +// +// private readonly SemaphoreSlim _getUserContextSemaphore = new SemaphoreSlim(1, 1); +// public async Task<UserContext> GetCurrentUserContext() { +// var hs = await hsProvider.GetHomeserver(); +// // await _getUserContextSemaphore.WaitAsync(); +// var ucs = await UserContextStore.GetOrCreateAsync($"{hs.WhoAmI.UserId}/{hs.WhoAmI.DeviceId}/{hs.ServerName}:{hs.AccessToken}", async x => { +// var userContext = new UserContext() { +// Homeserver = hs +// }; +// +// return userContext; +// }, _getUserContextSemaphore); +// // _getUserContextSemaphore.Release(); +// return ucs; +// } +// }