示例#1
0
        void LoggingWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            LoginMetadata   packed = e.Argument as LoginMetadata;
            bool            result = false;
            LoggingResponse res    = new LoggingResponse(null);

            try
            {
                if (packed.isHashed)
                {
                    result = (this.Get <UserServiceClient>().LoginHash(packed.User, packed.Pass).Status == Model.MethodInvokeResult.RESULT.SUCCESS);
                }
                else
                {
                    result = (this.Get <UserServiceClient>().Login(packed.User, packed.Pass).Status == Model.MethodInvokeResult.RESULT.SUCCESS);
                    if (result)
                    {
                        RememberAccount(packed.isRemember, packed.User, packed.Pass);
                    }
                }
                res = new LoggingResponse(this.Get <UserServiceClient>().FindName(packed.User));
                if (result)
                {
                    DoConnect(packed.User);
                    res.Success = true;
                }
                else
                {
                    if (packed.isCookie)
                    {
                        res.Message = "Thông tin lưu trữ tài khoản đã gặp lỗi. Vui lòng đăng nhập lại.";
                    }
                    else
                    {
                        res.Message = "Tài khoản và mật khẩu không trùng khớp.";
                    }
                }
            }
            catch (Exception ex)
            {
                if (ex is System.ServiceModel.EndpointNotFoundException ||
                    ex is System.Net.Sockets.SocketException)
                {
                    res.Message = "Không thể kết nối đến server.";
                }
                else
                {
                    res.Message = ex.Message;
                }
            }
            finally
            {
                e.Result = res;
            }
        }
示例#2
0
        void LoggingWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            ProcessPanel.Visibility = System.Windows.Visibility.Collapsed;
            LoggingResponse res = e.Result as LoggingResponse;

            if (res.Success)
            {
                this.Get <Core.Client.Client>().ID   = res.Users.UserID;
                this.Get <Core.Client.Client>().Name = res.Users.Username;
                OnLoginSuccess(res.Users);
            }
            else
            {
                LoginPanel.Visibility = System.Windows.Visibility.Visible;
                Message.Text          = res.Message;
            }
        }