//for load test harness user genration public void AssignTestUsersToGroup() { int userInGroupI = 0; string adminforGroupId = ""; foreach (UserDetail user in ConnectedUsers.ToList()) { //every 4 people setup new group if (userInGroupI == 0) { //create user - add to general users list adminforGroupId = user.ConnectionId; ConnectedUsers.Add(new UserDetail { ConnectionId = adminforGroupId, UserName = user.UserName }); //user auto added to Clients.All SignalR group system Guid groupId = Guid.NewGuid(); Group newGroup = new Group(); newGroup.id = groupId.ToString(); UserDetail userDetail = ConnectedUsers.FirstOrDefault(o => o.ConnectionId == adminforGroupId); //find the userDetails form userId o => o.Items != null && //this.AddUserToGroup(string userId, string adminID) try { newGroup.addUserDetail(userDetail); GroupList.Add(newGroup); Groups.Add(adminforGroupId, newGroup.id); } catch (Exception e) { DebugOut("ChatHub - NonBlockingConsumer - error message : " + e.Message); } } else { //Linq statement taken from AddUserToGroup(string userId, string adminID) GroupList.FirstOrDefault(o => o.getAdminId() == adminforGroupId).addUserDetail( ConnectedUsers.FirstOrDefault(o => o.ConnectionId == user.ConnectionId)); string groupId = GroupList.FirstOrDefault(o => o.getAdminId() == adminforGroupId).id; Groups.Add(user.ConnectionId, groupId); } //loop through 0,1,2,3 then back int beforeuserInGroupI = userInGroupI; userInGroupI = userInGroupI == 3 ? 0 : userInGroupI += 1; Clients.Client(user.ConnectionId).UploadListInfo(user.ConnectionId, GroupList.FirstOrDefault(o => o.getAdminId() == adminforGroupId).id); // send group info to client } DebugOut("----- ----- Game Groups Assignment ----- ----- "); foreach (Group group in GroupList) { this.addGameGroupAndUsers(group.id); } var a = GameGroups; DebugOut("----- ----- ----- ----- ----- ----- "); }
public void AddGroup(string userId) { DebugOut("ChatHub - AddGroup() - attempt add user ID: " + userId); Guid groupId = Guid.NewGuid(); Group newGroup = new Group(); string groupIdString = groupId.ToString(); Interlocked.Exchange(ref newGroup.id, groupIdString);//newGroup.id = groupId.ToString(); newGroup.adminId = userId; UserDetail userDetail = ConnectedUsers.FirstOrDefault(o => o.ConnectionId == userId); //find the userDetails form userId o => o.Items != null && try { newGroup.addUserDetail(userDetail); GroupList.Add(newGroup); Groups.Add(userId, newGroup.id); } catch (Exception e) { DebugOut("ChatHub - AddGroup() error : " + e.Message); } this.UpdateClientGroups(); }