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; } }
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; } }