public UserResponse(CurrentUser user) { Guid = user.GUID; Names = new UsersNames(user); ProfileURL = "Todo"; ProfilePicture = user.ProfilePicture; }
public void SignIn(string name) { lock (_lockObj10) { UsersConnections.Add(Context.ConnectionId, name); UsersNames.Add(name, Context.ConnectionId); foreach (var user in UsersWithStatus.Where(u => u.UserName == name)) { user.Status = StatusOfConnection.Available; } UpdateAllUsersNamesAndConnectionStatus(); } }
public override Task OnDisconnected(bool stopCalled) { if (stopCalled) { var con = Context.ConnectionId; string nameToRemove = UsersConnections[con]; UsersNames.Remove(nameToRemove); UsersConnections.Remove(Clients.Caller); foreach (var item in UsersWithStatus) { if ((item.UserName).Equals(nameToRemove)) { item.Status = StatusOfConnection.Offline; } } UpdateAllUsersNamesAndConnectionStatus(); } return(base.OnDisconnected(stopCalled)); }
public bool ValidateAvailabilityOfOtherUser(string userToConnectTo, GameOrChatRequestEnum request) { string connectionId; if (UsersNames.TryGetValue(userToConnectTo, out connectionId)) { foreach (UserWithStatus user in UsersWithStatus) { if (user.UserName.Equals(userToConnectTo)) { if ((user.Status == StatusOfConnection.Available || user.Status == StatusOfConnection.BusyOnGame) && request == GameOrChatRequestEnum.Chat) { return(true); } if ((user.Status == StatusOfConnection.Available || user.Status == StatusOfConnection.BusyOnChat) && request == GameOrChatRequestEnum.Game) { return(true); } } } } return(false); }