///// <summary> ///// 脱机模式时按在线模式处理的检验 ///// </summary> ///// <param name="card"></param> ///// <param name="msg"></param> ///// <returns></returns> //private bool OnlineHandleWhenOfflineModeCheck(CardInfo card, out string msg) //{ // if (AppSettings.CurrentSetting.EnableWriteCard // && !card.OnlineHandleWhenOfflineMode)//脱机模式时,按脱机模式处理 // { // if (!DataBaseConnectionsManager.Current.BothCconnectedOrNoStandby) // { // msg = "与主数据库或备用数据库连接失败!"; // return false; // } // if (DataBaseConnectionsManager.Current.StandbyConnected) // { // //与备用数据库连接上时,检查主数据库与备用数据库的数据是否一致 // CardBll scbll = new CardBll(AppSettings.CurrentSetting.CurrentStandbyConnect); // CardInfo scard = scbll.GetCardByID(card.CardID).QueryObject; // if (scard == null // || scard.ParkingStatus != card.ParkingStatus //停车状态 // || scard.LastDateTime != card.LastDateTime //最近一次刷卡时间 // ||scard.PaidDateTime!=card.PaidDateTime //缴费时间 // ||scard.TotalPaidFee!=card.TotalPaidFee) //已缴费用 // { // msg = "主数据库与备用数据库信息不一致!"; // return false; // } // } // } // msg = string.Empty; // return true; //} /// <summary> /// 获取卡片详细信息 /// </summary> /// <param name="offlineHandleCard">是否脱机处理的卡片</param> /// <param name="cardID">卡号</param> /// <param name="info">从卡片扇区数据中读取到的卡片信息</param> /// <param name="card">返回的卡片</param> /// <param name="msg">返回的错误信息</param> /// <returns></returns> private bool GetCardDetail(bool offlineHandleCard, string cardID, CardInfo info, out CardInfo card, out string msg) { card = null; if (DataBaseConnectionsManager.Current.MasterConnected || DataBaseConnectionsManager.Current.StandbyConnected) { CardInfo mastercard = null; CardInfo standbycard = null; if (DataBaseConnectionsManager.Current.MasterConnected) { CardBll mcbll = new CardBll(AppSettings.CurrentSetting.CurrentMasterConnect); mastercard = mcbll.GetCardDetail(cardID); } if (DataBaseConnectionsManager.Current.StandbyConnected) { //需要获取备用数据库的卡片信息进行比对 //通信工作站如果没有连接上主数据库,需要从备用数据库中获取卡片信息 CardBll scbll = new CardBll(AppSettings.CurrentSetting.CurrentStandbyConnect); standbycard = scbll.GetCardDetail(cardID); } //在线处理的卡片,主数据库连上,有备份数据库的,需要与获取备用数据库的卡片信息进行比对 if (!offlineHandleCard && DataBaseConnectionsManager.Current.MasterConnected && WorkStationInfo.CurrentStation.HasStandbyDatabase) { if (mastercard == null && standbycard == null) { //没有该卡片 } else if (mastercard == null || standbycard == null || !mastercard.CompareChargeInfo(standbycard)) { msg = "主数据库与备用数据库信息不一致!"; return(false); } } if (mastercard != null) { card = mastercard; } else if (WorkStationInfo.CurrentStation.IsHostWorkstation || offlineHandleCard) { card = standbycard; } } else if (offlineHandleCard) { //与主数据库和备用连接断开时,如果是脱机处理的卡片,获取的为读到的卡片信息 card = info.Clone(); } msg = string.Empty; return(true); }