void InitRefund() { tsRefund.Click += tsRefund_Click; _orderManager.InitRefundTicketComplete += (s, e) => { var trainCode = _currentRefundTicket.stationTrainDTO.station_train_code; var id = _currentRefundTicket.sequence_no; var batchNo = _currentRefundTicket.batch_no; if (!_orderManager.RefundSuccess) { Information(string.Format("退票失败: 【{0}】{1} {2}\n错误信息: {3}", id, trainCode, _currentRefundTicket.Passenger.Name, _orderManager.Error?.ToString() ?? "未知错误")); BeginRefundTicket(); } else { _refundWaitingDialog.SetState(ExecutionState.Warning, string.Format("请确认退票 【{0}/{1}】{2} {3}", id, batchNo, trainCode, _currentRefundTicket.Passenger.Name)); if (Question(string.Format("确认退票 【{0}】{1} {2} ?\n退票手续费 {3},退回金额 {4}", id, trainCode, _currentRefundTicket.Passenger.Name, _orderManager.RefundCost.ToString("C"), _orderManager.RefundFee.ToString("C")), true)) { _refundWaitingDialog.SetState(ExecutionState.Running, string.Format("正在退票 【{0}】{1} {2}", id, trainCode, _currentRefundTicket.Passenger.Name)); _orderManager.RunRefundTicket(); } else { BeginRefundTicket(); } } }; _orderManager.RefundTicketFinished += (s, e) => { var trainCode = _currentRefundTicket.stationTrainDTO.station_train_code; var id = _currentRefundTicket.sequence_no; var batchNo = _currentRefundTicket.batch_no; if (_orderManager.RefundSuccess) { Information(string.Format("退票成功: 【{0}】{1} {2}", id, trainCode, _currentRefundTicket.Passenger.Name)); Session.OnOrderRefundSuccess(Session, new OrderRefundEventArgs(_currnetRefundOrder, new[] { _currentRefundTicket }, false)); } else { Information(string.Format("退票失败: 【{0}】{1} {2}", id, trainCode, _currentRefundTicket.Passenger.Name)); } BeginRefundTicket(); }; }
public void RunLoginProcedure(RequireSessionLoginWorker worker) { using (var wd = new YetAnotherWaitingDialog()) { var vccount = 0; IVerifyCodeRecognizeResult vcResult = null; wd.WorkCallback = worker.DoLogin; worker.StateChanged += (ss, se) => { wd.SetState(worker.State.ToExecutionState(), worker.Message); }; worker.VerifyCodeError += (x, y) => { if (vcResult != null && VerifyCodeRecognizeServiceLoader.VerifyCodeRecognizeEngine != null) { VerifyCodeRecognizeServiceLoader.VerifyCodeRecognizeEngine.MarkResult(vcResult, false); vcResult = null; } }; worker.RequireEnterVerifyCode += (ss, ee) => { wd.Invoke(() => { if (vccount > 5 && ProgramConfiguration.Instance.AutoEnterLoginVcCode) { MessageDialog.Information("亲,验证码自动识别失败超过限制,自动识别已经关闭,请手动输入验证码。"); } //var vcform = new UI.Dialogs.RequireVcCode //{ // Session = ee.Session, // EnableAutoVc = vccount < 6 && ProgramConfiguration.Instance.AutoEnterLoginVcCode, // AutoVcCount = vccount //}; //if (vcform.ShowDialog(OwnerForm) == DialogResult.OK) //{ // vcResult = vcform.VcResult; // vccount = vcform.AutoVcCount; // ee.VerifyCode = vcform.Code; // if (vcResult != null) // { // //report // ApiEvents.OnAutoVc(null, new GeneralEventArgs<AutoVcLog>(new AutoVcLog() // { // Account12306 = worker.UserName, // TypeID = 0, // TodayUsed = AutoVcBaseLimition.GetVcUsed() // })); // } //} var vc = new TouchClickVcSimpleForm(ee.Session) { RandCodeType = RandCodeType.SjRand, EnableAutoVc = vccount < 6 && ProgramConfiguration.Instance.AutoEnterLoginVcCode }; if (vc.ShowDialog(OwnerForm) == DialogResult.OK) { ee.VerifyCode = vc.Code; vcResult = vc.AutoVcResult; if (vcResult != null) { vccount++; } } }); vccount++; }; wd.ShowDialog(OwnerForm); if (EnableFallback && worker.Session == null && (string.IsNullOrEmpty(worker.Message) || worker.Message.IndexOf("密码输入错误") != -1)) { //返回 using (var logindlg = new Login() { PreSelectUser = worker.UserName }) { logindlg.ShowDialog(OwnerForm); } } else if (worker.State == OpearationState.Blocked && !worker.Message.IsNullOrEmpty()) { MessageDialog.Error(OwnerForm, "尝试登录的时候遇到了问题:\n\n" + worker.Message); } else if (wd.Exception != null) { MessageDialog.Error(OwnerForm, "尝试登录的时候遇到了问题:\n\n" + wd.Exception.ToString()); } if (worker.Session != null && worker.LoginConflict) { MessageDialog.Information(OwnerForm, "此次登录检测到会话冲突,如果您此时还在其它的软件或浏览器上登录此账号,它们将会被12306无情地注销掉。\n\n世界就是这样的残酷,多坑点身份证注册几个账号吧……"); } } }