public void UpdateRankIndex(int docId, int tabIndex, int value) { if (_RankTab < 0) { return; } if (tabIndex != _RankTab) { return; } if (_Lock.Enter(Lock.Mode.Mutex)) { try { int rank = value; if (rank < 0) { rank = 0; } else if (rank > 65535) { rank = 65535; } _DocIdToRank.AddOrUpdate(docId, (UInt16)rank); } finally { _Lock.Leave(Lock.Mode.Mutex); } } }
public async Task Register(Registration registration) { await Lock(async() => { Console.WriteLine($"Received registration from User ID: {registration.UserId} at {registration.EndPoint}"); registration.Renew(); if (_registrationLookup.AddOrUpdate(registration.UserId, registration)) { //was an update, need to change the one in the list for (int index = 0; index < _registrations.Count; index++) { var existingRegistration = _registrations[index]; if (existingRegistration.UserId == registration.UserId) { _registrations[index] = registration; if (existingRegistration.EndPoint != registration.EndPoint) { foreach (var groupId in await _groupsClient.GetUsersGroups(registration.UserId)) { var endpoints = LookupGroupEndpoints(groupId); Console.WriteLine($"Changing endpoint for user: {registration.UserId} in group {groupId}"); endpoints.Remove(existingRegistration.EndPoint); endpoints.Add(registration.EndPoint); } } } } } else { _registrations.Add(registration); foreach (var groupId in await _groupsClient.GetUsersGroups(registration.UserId)) { var endpoints = LookupGroupEndpoints(groupId); Console.WriteLine($"Adding user: {registration.UserId} to group {groupId}"); endpoints.Add(registration.EndPoint); } } }); }
internal void AddOrUpdate(int value, int docId) { _ReplaceFieldValueIntToDocId.AddOrUpdate(value, docId); }