Пример #1
0
        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);
        }
Пример #2
0
        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));
        }