using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Data; using System.Collections; using Cosmos.Common; using Cosmos.CommonManager; using Cosmos.BaseFrame; using Cosmos.UserFrame; using Cosmos.ServiceProvider; namespace Cosmos.Service { class ICReaderUpdate : IICReaderUpdate { private PosStatus m_cPosStatus = new PosStatus(); // 기본정보 참조 private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) private DeviceStatus m_cDevStatus = new DeviceStatus(); // 디바이스 관리 private IICReaderUs m_cDeviceICReader = null; // IC리더기 private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스 private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 public ICReaderUpdate() { m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 m_cDevStatus = (DeviceStatus)StateObject.DEVICE; m_cDeviceICReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER); m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); } /// /// IC리더기 펌웨어 업데이트 건수 /// /// /// /// public int ICReaderUpdateCnt(string sFilePath, ref string sFirmFileNm) { int nRet = 0; sFirmFileNm = ""; try { if (System.IO.Directory.Exists(sFilePath)) { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(sFilePath); if (di.GetFiles().Count() > 0) { nRet = nRet + 1; FileInfo[] aFirm = di.GetFiles(); sFirmFileNm = aFirm[0].Name; } } return nRet; } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } return nRet; } /// /// IC리더기 모델 체크 /// /// public bool ICReaderModelCheck() { bool bRtn = false; string sModelDiv = ""; // 모델구분 StringBuilder sbVer = null; try { // IC리더기 스펙체크 sbVer = m_cDeviceICReader.SetAuthInfoString(PosConst.POS_CARD_READER_DEVICE_TYPE.IC_READER); sModelDiv = CmUtil.MidH(sbVer.ToString(), 0, 12); sModelDiv = sModelDiv.Replace("#", "").Trim(); if (sModelDiv == PosConst.PGM_UPDATE_TYPE.POSDOWN_GROUP_70_DIV.IC_READER_MODEL_SR_440P) { bRtn = true; } } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } return bRtn; } /// /// IC리더기 펌웨어 업데이트 건수 /// /// /// public string ICReaderResultCode(int nErrCode) { string sMsgCode = string.Empty; try { if (nErrCode > 0 && nErrCode != 1003) { return sMsgCode = POS_MESSAGE.ERROR.MSG_0724; } switch (nErrCode) { case 0: sMsgCode = POS_MESSAGE.ERROR.MSG_0704; break; case -1: sMsgCode = POS_MESSAGE.ERROR.MSG_0705; break; case -2: sMsgCode = POS_MESSAGE.ERROR.MSG_0706; break; case -3: sMsgCode = POS_MESSAGE.ERROR.MSG_0707; break; case -4: sMsgCode = POS_MESSAGE.ERROR.MSG_0708; break; case -5: sMsgCode = POS_MESSAGE.ERROR.MSG_0709; break; case -6: sMsgCode = POS_MESSAGE.ERROR.MSG_0710; break; case -7: sMsgCode = POS_MESSAGE.ERROR.MSG_0711; break; case -10: sMsgCode = POS_MESSAGE.ERROR.MSG_0712; break; case -11: sMsgCode = POS_MESSAGE.ERROR.MSG_0713; break; case -12: sMsgCode = POS_MESSAGE.ERROR.MSG_0714; break; case -13: sMsgCode = POS_MESSAGE.ERROR.MSG_0715; break; case -14: sMsgCode = POS_MESSAGE.ERROR.MSG_0716; break; case -15: sMsgCode = POS_MESSAGE.ERROR.MSG_0717; break; case -16: sMsgCode = POS_MESSAGE.ERROR.MSG_0718; break; case -17: sMsgCode = POS_MESSAGE.ERROR.MSG_0719; break; case -18: sMsgCode = POS_MESSAGE.ERROR.MSG_0720; break; case -19: sMsgCode = POS_MESSAGE.ERROR.MSG_0721; break; case -20: sMsgCode = POS_MESSAGE.ERROR.MSG_0722; break; case 1003: sMsgCode = POS_MESSAGE.ERROR.MSG_0723; break; default: sMsgCode = POS_MESSAGE.ERROR.MSG_0725; break; } } catch (Exception) { throw; } return sMsgCode; } } }