/// <summary> /// IC卡信息制卡 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BtnICCardCreate_Click(object sender, EventArgs e) { if (!CStaticClass.CheckPushService()) {// 检查服务 return; } if (CTxtICCardIDFind.Text.Trim().Length != 4) { MessageBox.Show("请输入四位用户卡号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } QueryServiceClient proxy = new QueryServiceClient(); try { if (string.IsNullOrEmpty(this.TxtICCardPhy.Text) || string.IsNullOrEmpty(this.CTxtICCardIDFind.Text)) { MessageBox.Show("用户卡号、物理卡号都不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } string strPhysicalCardID = this.TxtICCardPhy.Text.Trim(); string strICCardID = CStaticClass.ConvertICCardID(this.CTxtICCardIDFind.Text.Trim()); // 写入数据格式(最大可写入长度是15个字节):卡号 + 类型("1") + 制卡时间("yyyyMMdd") + 收费标准("01") // strData += "1" + CStaticClass.CurruntDateTime().ToString("yyyyMMdd") + "01"; CarLocationPanelLib.QueryService.EnmFaultType type = proxy.AddNewICCard(strPhysicalCardID, strICCardID); switch (type) { // 制卡成功 case CarLocationPanelLib.QueryService.EnmFaultType.Success: { if (CStaticClass.ConfigBillingFlag()) { MessageBox.Show("制卡成功!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); break; } ICCardCreateAddCustomer(strICCardID); this.TxtICCardPhy.Clear(); break; } // 当前IC卡已经制卡 case CarLocationPanelLib.QueryService.EnmFaultType.HasICCardInfo: { MessageBox.Show("当前IC卡已经制卡:" + strICCardID, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } // 逻辑卡号不一致确认是否修改逻辑卡号 case CarLocationPanelLib.QueryService.EnmFaultType.ModifyICCardID: { ModifyICCardID(strPhysicalCardID, strICCardID); break; } // 输入的逻辑卡号已经存在 case CarLocationPanelLib.QueryService.EnmFaultType.ICCardIDNotAllowed: { MessageBox.Show("输入的用户卡号已经存在", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } // 插入数据库失败 case CarLocationPanelLib.QueryService.EnmFaultType.FailToInsert: { MessageBox.Show("插入数据库失败", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } // 传入的物理卡号或逻辑卡号为空 case CarLocationPanelLib.QueryService.EnmFaultType.Fail: { MessageBox.Show("传入的物理卡号或逻辑卡号为空", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } case CarLocationPanelLib.QueryService.EnmFaultType.Exception: { MessageBox.Show(CStaticClass.GetExceptionInfo(null), "连接异常", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } // 连接读卡器失败 // case EnmFaultType.FailConnection: // { // MessageBox.Show("连接读卡器失败", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); // break; // } // // 写入IC卡失败 // case EnmFaultType.FailToWriteICCard: // { // MessageBox.Show("写入IC卡失败:" + strData, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); // break; // } default: { MessageBox.Show("制卡失败", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; } } } catch (TimeoutException) { MessageBox.Show("The service operation timed out. ", "超时", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (FaultException exception) { MessageBox.Show(CStaticClass.GetExceptionInfo(exception), "SOAP错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (CommunicationException exception) { MessageBox.Show("There was a communication problem. " + CStaticClass.GetExceptionInfo(exception), "通信错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception exception) { MessageBox.Show(CStaticClass.GetExceptionInfo(exception), "应用程序异常", MessageBoxButtons.OK, MessageBoxIcon.Error); } proxy.Close(); }