Ejemplo n.º 1
0
        //触发注册回调
        public void SignupHandle(object sender, SignUpCallBack callBack)
        {
            string res = string.Empty;

            if (callBack.status == Status.Yes)
            {
                res = string.Format("{0}\nID:{1}\n记住ID以登陆账户", callBack.MoreMsg, callBack.UserId);
            }
            else
            {
                res = callBack.MoreMsg;
            }
            ShowMsg(null, res);
        }
Ejemplo n.º 2
0
        //用户注册
        public SignUpCallBack Signup(SignupContract contract)
        {
            SignUpCallBack call = new SignUpCallBack();
            string         Id   = string.Empty;

            using (var model = new Data.DataModel())
            {
                //获取全局唯一的用户Id
                while (true)
                {
                    Id = GetARandomId();
                    var cf = model.users.Where(p => p.UserId.Equals(Id)).Count();
                    if (cf <= 0)
                    {
                        break;
                    }
                }
                //将用户ID插入数据库
                try
                {
                    model.users.Add(new user {
                        UserId = Id, UserName = contract.UserName, Password = contract.UserPwd
                    });
                    model.SaveChanges();
                    call.status  = Status.Yes;
                    call.UserId  = Id;
                    call.MoreMsg = "注册成功!";
                }
                catch (Exception e)
                {
                    call.status  = Status.No;
                    call.UserId  = null;
                    call.MoreMsg = "注册失败:" + e.Message;
                }
                return(call);
            }
        }
Ejemplo n.º 3
0
 public void SignupCallBack(SignUpCallBack callBack)
 {
     return;
 }
Ejemplo n.º 4
0
        public static event EventHandler <TalkContract> GetMsgHandler;         //接收消息事件

        public static void Handle(object sender, string data)
        {
            string[] d = Data_Init(data);
            switch (d[0])
            {
            case "LOGINCALLBACK":
                try
                {
                    LoginCallBack callBack = DataHelpers.DeXMLSer <LoginCallBack>(d[1]);
                    if (LoginHandler != null)
                    {
                        LoginHandler(null, callBack);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "SIGNUPCALLBACK":
                try
                {
                    SignUpCallBack callBack = DataHelpers.DeXMLSer <SignUpCallBack>(d[1]);
                    if (SignupHandler != null)
                    {
                        SignupHandler(null, callBack);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "PRESENCEMSG":
                break;

            case "SEARCHCALLBACK":
                try
                {
                    SearchCallBack callBack = DataHelpers.DeXMLSer <SearchCallBack>(d[1]);
                    if (SearchHandler != null)
                    {
                        SearchHandler(null, callBack);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "ADDCALLBACK":
                User user = DataHelpers.DeXMLSer <User>(d[1]);
                if (UpdateFriendHandler != null)
                {
                    UpdateFriendHandler(null, user);
                }
                break;

            case "ADDCONFIRM":
                try
                {
                    AddConfirm confirm = DataHelpers.DeXMLSer <AddConfirm>(d[1]);
                    if (AddComfirmHandler != null)
                    {
                        AddComfirmHandler(null, confirm);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "REMOVE":
                RemoveContract remove = null;
                try
                {
                    remove = DataHelpers.DeXMLSer <RemoveContract>(d[1]);
                    if (RemoveFriendHandler != null)
                    {
                        RemoveFriendHandler(null, remove);
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
                break;

            case "TALK":
                TalkContract talk = null;
                try
                {
                    talk = DataHelpers.DeXMLSer <TalkContract>(d[1]);
                    if (GetMsgHandler != null)
                    {
                        GetMsgHandler(null, talk);
                    }
                }
                catch
                {
                    break;
                }
                break;

            default:
                break;
            }
        }
Ejemplo n.º 5
0
        public static void Handle(object sender, string data)
        {
            ServerHandle  server = new ServerHandle();
            IServerHandle ish    = (IServerHandle)server;
            TCPHelper     helper = (TCPHelper)sender;

            string[] d = Data_Init(data);
            switch (d[0])
            {
            case "LOGIN":
                LoginContract login = null;
                try
                {
                    login = WTalk.Helpers.DataHelpers.DeXMLSer <LoginContract>(d[1]);
                }
                catch { }
                LoginCallBack callBack = ish.Login(helper.tcpClient, login);
                if (ShowOnServerWindow != null)
                {
                    if (callBack.LoginStatus == Status.Yes)
                    {
                        UserArgs args = new UserArgs
                        {
                            IP = helper.tcpClient.Client.RemoteEndPoint.ToString(),
                            Id = login.UserId
                        };
                        string log = string.Format("{0}-->Login Success", helper.tcpClient.Client.RemoteEndPoint.ToString());
                        ShowOnServerWindow(null, log);
                        if (LoginHandler != null)
                        {
                            LoginHandler(null, args);
                        }
                    }
                    else
                    {
                        string log = string.Format("{0}-->Login Fail", helper.tcpClient.Client.RemoteEndPoint.ToString());
                        ShowOnServerWindow(null, log);
                    }
                }
                string msg = string.Format("LOGINCALLBACK@{0}", WTalk.Helpers.DataHelpers.XMLSer <LoginCallBack>(callBack));
                helper.SendMessage(msg);
                break;

            case "SIGNUP":
                SignupContract signup = null;
                try
                {
                    signup = DataHelpers.DeXMLSer <SignupContract>(d[1]);
                }
                catch { }
                SignUpCallBack signUpCallBack = ish.Signup(signup);
                if (ShowOnServerWindow != null)
                {
                    string log = string.Format("{0}-->Signup:{1}", helper.tcpClient.Client.RemoteEndPoint.ToString(), signUpCallBack.MoreMsg);
                    //if (callBack.LoginStatus == Status.Yes)
                    //{
                    //    string log = string.Format("{0}-->Signup", helper.tcpClient.Client.RemoteEndPoint.ToString());
                    //    ShowOnServerWindow(null, log);
                    //}
                    //else
                    //{
                    //    string log = string.Format("{0}-->Login Fail", helper.tcpClient.Client.RemoteEndPoint.ToString());
                    //    ShowOnServerWindow(null, log);
                    //}
                    ShowOnServerWindow(null, log);
                }
                helper.SendMessage(string.Format("SIGNUPCALLBACK@{0}", DataHelpers.XMLSer <SignUpCallBack>(signUpCallBack)));
                break;

            case "LOGOUT":
                //string logoutlog = string.Format("{0}-->登出", helper.tcpClient.Client.RemoteEndPoint.ToString());
                //if(ShowOnServerWindow != null)
                //{
                //    ShowOnServerWindow(null, logoutlog);
                //}
                break;

            case "SEARCH":
                SearchContract search = null;
                try
                {
                    search = DataHelpers.DeXMLSer <SearchContract>(d[1]);
                    SearchCallBack back = ish.Search(search);
                    helper.SendMessage(string.Format("SEARCHCALLBACK@{0}", DataHelpers.XMLSer <SearchCallBack>(back)));
                }
                catch
                {
                }
                break;

            case "ADD":
                AddContract add = null;
                try
                {
                    add = DataHelpers.DeXMLSer <AddContract>(d[1]);
                    AddComfirmArgs args = ish.Add(add);
                    if (args.IP != "Offline")
                    {
                        AddHandler(null, args);
                    }
                }
                catch
                {
                    break;
                }
                break;

            case "REMOVE":
                RemoveContract remove = null;
                try
                {
                    remove = DataHelpers.DeXMLSer <RemoveContract>(d[1]);
                    ish.RemoveFriends(remove);
                    if (RemoveFriendHandler != null)
                    {
                        RemoveFriendHandler(null, remove);
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }
                break;

            case "TALK":
                TalkContract talk = new TalkContract();
                try
                {
                    talk = DataHelpers.DeXMLSer <TalkContract>(d[1]);
                    if (TalkHandler != null)
                    {
                        TalkHandler(null, talk);
                    }
                }
                catch
                {
                }
                break;

            case "ADDCONFIRMCALLBACK":
                AddConfirmCallBack accb        = null;
                AddCallBack        addCallBack = null;
                try
                {
                    accb        = DataHelpers.DeXMLSer <AddConfirmCallBack>(d[1]);
                    addCallBack = ish.AddComfirm(accb);
                    if (UpdateFriendListHandler != null)
                    {
                        UpdateFriendListHandler(null, addCallBack);
                    }
                }
                catch
                {
                    break;
                }
                break;

            default:
                break;
            }
        }