private async Task RemoveUserFromRedisAsync(ChatUser user, CancellationToken token = default) { var rec = new ChatUserRec { Id = user.Id, Name = user.Name }; var serialized = JsonSerializer.Serialize(rec); await database.SortedSetRemoveAsync(roomKey, serialized); }
private async Task AddUserToRedisAsync(ChatUser user, CancellationToken token = default) { var rec = new ChatUserRec { Id = user.Id, Name = user.Name }; var serialized = JsonSerializer.Serialize(rec); var timestamp = DateTime.Now.Ticks; await database.SortedSetAddAsync(roomKey, serialized, timestamp); }
private async Task <bool> TryAddingUserToRedisAsync(ChatUser user, CancellationToken token = default) { var present = await CountRoomUsers(token); if (present >= maxSize) { return(false); } var rec = new ChatUserRec { Id = user.Id, Name = user.Name }; var serialized = JsonSerializer.Serialize(rec); var timestamp = DateTime.Now.Ticks; return(await database.SortedSetAddAsync(roomKey, serialized, timestamp, When.NotExists)); }