public bool Register(int id, string name, string memberName, string password, int money, string email) { RegisterCommMessage toSend = new RegisterCommMessage(id, name, memberName, password, money, email); Tuple <CommunicationMessage, bool, bool, ResponeCommMessage> messageToList = new Tuple <CommunicationMessage, bool, bool, ResponeCommMessage>(toSend, false, false, new ResponeCommMessage(-1)); MessagesSentObserver.Add(messageToList); _eventHandler.SendNewEvent(toSend); while (MessagesSentObserver.Find(x => x.Item1.Equals(toSend)).Item2 == false) { var t = Task.Run(async delegate { await Task.Delay(10); }); t.Wait(); } bool toRet = MessagesSentObserver.Find(x => x.Item1.Equals(toSend)).Item3; if (toRet) { RegisterResponeCommMessage rmsg = (RegisterResponeCommMessage)(MessagesSentObserver.Find(x => x.Item1.Equals(toSend))).Item4; ClientUser cuser = new ClientUser(rmsg.UserId, rmsg.Name, rmsg.Username, rmsg.Password, rmsg.Avatar, rmsg.Money, rmsg.Email, rmsg.Leauge); user = cuser; _sessionId = rmsg.SessionId; } MessagesSentObserver.Remove(messageToList); return(toRet); }
public ResponeCommMessage HandleEvent(RegisterCommMessage msg) { if (_sessionIdHandler != null) { bool success = _userService.RegisterToSystem(msg.UserId, msg.Name, msg.MemberName, msg.Password, msg.Money, msg.Email); if (_socket != null) { _commHandler.AddUserId(msg.UserId, _socket); } long sid = GenerateSid(msg.UserId); IUser user = _userService.GetUserById(msg.UserId); ResponeCommMessage response = new RegisterResponeCommMessage(sid, msg.UserId, msg.Name, msg.MemberName, msg.Password, user.Avatar(), msg.Money, msg.Email, "unKnow", success, msg); return(response); } return(new ResponeCommMessage(msg.UserId, msg.SessionId, false, msg)); }