private void btnSave_Click(object sender, EventArgs e) { ZSTSettings zst = new ZSTSettings(); foreach (DataGridViewRow row in dataGridView1.Rows) { if (!string.IsNullOrEmpty(row.Cells["colEntrance"].Value.ToString())) { Ralid.OpenCard.OpenCardService.ZSTItem item = new Ralid.OpenCard.OpenCardService.ZSTItem() { ReaderIP = (string)row.Cells["colReaderIP"].Value, EntranceID = (int)row.Cells["colEntrance"].Tag, Memo = (string)row.Cells["colMemo"].Value }; zst.Items.Add(item); } else { Ralid.OpenCard.OpenCardService.ZSTItem item = new Ralid.OpenCard.OpenCardService.ZSTItem() { ReaderIP = (string)row.Cells["colReaderIP"].Value, EntranceID = 0, Memo = (string)row.Cells["colMemo"].Value }; zst.Items.Add(item); } } CommandResult ret = (new SysParaSettingsBll(AppSettings.CurrentSetting.ParkConnect)).SaveSetting <ZSTSettings>(zst); if (CustomCardTypeSetting.Current.GetCardType(ZSTSettings.CardType) == null) //增加自定义卡片类型 { CustomCardTypeSetting.Current.AddCardType(ZSTSettings.CardType, (byte)Ralid.Park.BusinessModel.Enum.CardType.MonthRentCard); new SysParaSettingsBll(AppSettings.CurrentSetting.MasterParkConnect).SaveSetting <CustomCardTypeSetting>(CustomCardTypeSetting.Current); } if (ret.Result == ResultCode.Successful) { AppSettings.CurrentSetting.SaveConfig("EnableZST", chkEnable.Checked.ToString()); OpenCardMessageHandler handler = GlobalSettings.Current.Get <OpenCardMessageHandler>(); if (chkEnable.Checked) { handler.InitService(zst); } else { handler.CloseService <ZSTSettings>(); } this.DialogResult = DialogResult.OK; } else { MessageBox.Show(ret.Message); } }
private void reader_CardReadHandler(object sender, ZSTReaderEventArgs e) { if (Setting == null) { _Reader.MessageConfirm(e.ReaderIP); return; } ZSTItem item = Setting.GetReader(e.ReaderIP); if (item == null) { _Reader.MessageConfirm(e.ReaderIP); return; } EntranceInfo entrance = null; entrance = ParkBuffer.Current.GetEntrance(item.EntranceID); OpenCardEventArgs args = new OpenCardEventArgs() { CardID = e.CardID, CardType = ZSTSettings.CardType, Balance = e.Balance, Entrance = entrance, }; if (entrance != null && !entrance.IsExitDevice) //入场时产生读卡事件 { _Reader.MessageConfirm(e.ReaderIP); if (this.OnReadCard != null) { this.OnReadCard(this, args); } } else //中央收费和出口产生收费事件 { if (this.OnPaying != null) { this.OnPaying(this, args); //产生收费事件 } if (args.Payment == null) { return; } if (args.Payment.GetPaying() == 0) //不用收费直接返回收款成功事件 { args.Payment.PaymentCode = Ralid.Park.BusinessModel.Enum.PaymentCode.Computer; args.Payment.PaymentMode = Ralid.Park.BusinessModel.Enum.PaymentMode.ZhongShanTong; if (this.OnPaidOk != null) { this.OnPaidOk(this, args); } } else { lock (_WaitingPayingCardsLocker) { _WaitingPayingCards[e.CardID] = args; //保存某个读卡器目前正在处理的收费记录 } _Reader.Consumption(e.ReaderIP, args.Payment.GetPaying()); //直接扣款 } } }