using System;
using System.Windows.Forms;
using System.Threading;
using Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;
/*-----------------------------------------------------------------------------------------------*/
// 설 명 : 신용카드, 포인트 승인 처리(SPCN)
// 작 성 자 :
// 변경 이력 :
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Service
{
public partial class frmVanMessage : Form
{
private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
private IICReaderUs m_cICReader = null; // IC리더기
private bool m_bSecondDisp = false; // 초 표시여부
private int m_nSecondCount = 0; // 초(경과)
string m_sMessageStr;
///
/// 화면표시 메시지
///
public string PosMessageStr
{
get { return this.m_sMessageStr; }
set
{
this.m_sMessageStr = value;
try
{
lblMessage.Text = m_sMessageStr;
}
catch { }
}
}
string m_sServerIp;
///
/// 서버IP
///
public string ServerIp
{
get { return this.m_sServerIp; }
set { this.m_sServerIp = value; }
}
int m_nServerPort;
///
/// 서버PORT
///
public int ServerPort
{
get { return this.m_nServerPort; }
set { this.m_nServerPort = value; }
}
int m_nTimeOut;
///
/// 서버 TIMEOUT
///
public int TimeOut
{
get { return this.m_nTimeOut; }
set { this.m_nTimeOut = value; }
}
string m_sSendData;
///
/// 송신데이터
///
public string SendData
{
get { return this.m_sSendData; }
set { this.m_sSendData = value; }
}
string m_sRecvData;
///
/// 수신데이터
///
public string RecvData
{
get { return this.m_sRecvData; }
set { this.m_sRecvData = value; }
}
int m_nRecvRet;
///
/// 수신리턴값
///
public int RecvRet
{
get { return this.m_nRecvRet; }
set { this.m_nRecvRet = value; }
}
string m_sICData;
///
/// IC Chip 데이터
///
public string ICData
{
get { return this.m_sICData; }
set { this.m_sICData = value; }
}
string m_sSignData;
///
/// 전자서명 데이터
///
public string SignData
{
get { return this.m_sSignData; }
set { this.m_sSignData = value; }
}
string m_sOilData;
///
/// 유가보조/면세유 데이터
///
public string OilData
{
get { return this.m_sOilData; }
set { this.m_sOilData = value; }
}
string m_sAuthInfo;
///
/// 등록제 정보 데이터
///
public string AuthInfo
{
get { return this.m_sAuthInfo; }
set { this.m_sAuthInfo = value; }
}
string m_sLastRecvData;
///
/// 망취소시 마지막 응답 전문
///
public string LastRecvData
{
get { return this.m_sLastRecvData; }
set { this.m_sLastRecvData = value; }
}
public frmVanMessage()
{
InitializeComponent();
base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
//this.UpdateStyles();
m_cICReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER);
}
private void frmVanMessage_Load(object sender, EventArgs e)
{
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
CmMessage m_PosConfig = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + "PosConfig.INI");
string sFont = m_PosConfig.GetMessage("GLOBAL").GetMessageValue("Font");
FormManager.SetFormAllControlFont(this, sFont);
long nScreenSizeUser = CmUtil.LongParse(m_PosConfig.GetMessage("GLOBAL").GetMessageValue("ScreenSizeUser"));
FormManager.MovePopUpForm(this, false, nScreenSizeUser);
picSearchMessage.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.SCH_MESSAGE_BOX);
if (m_sMessageStr != "") lblMessage.Text = m_sMessageStr;
this.m_sRecvData = "";
if (string.IsNullOrEmpty(m_sSendData) == true) m_sSendData = "";
if (string.IsNullOrEmpty(m_sICData) == true) m_sICData = "";
if (string.IsNullOrEmpty(m_sSignData) == true) m_sSignData = "";
if (string.IsNullOrEmpty(m_sOilData) == true) m_sOilData = "";
if (string.IsNullOrEmpty(m_sAuthInfo) == true) m_sAuthInfo = "";
if (string.IsNullOrEmpty(m_sLastRecvData) == true) m_sLastRecvData = "";
this.m_nRecvRet = 0;
this.TopMost = true;
tmrStart.Enabled = true;
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"Process Exception !!! " + ex.Message);
}
}
private void frmVanMessage_FormClosing(object sender, FormClosingEventArgs e)
{
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
}
private void tmrStart_Tick(object sender, EventArgs e)
{
try
{
tmrStart.Enabled = false;
m_bSecondDisp = true;
m_nSecondCount = 0;
Thread thrSecondDisp = new Thread(new ThreadStart(OnNetworkIRT));
thrSecondDisp.Start();
OnSecondDisplay();
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"Process Exception !!! " + ex.Message);
}
finally
{
this.Close();
}
}
private void OnSecondDisplay()
{
try
{
while (m_bSecondDisp == true)
{
m_nSecondCount++;
if (m_nSecondCount % 10 == 0)
{
lblMessage.Text = m_sMessageStr + " (" + (int)(m_nSecondCount / 10) + ")";
lblMessage.Update();
}
Thread.Sleep(100);
}
m_sAuthInfo = "";
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"Process Exception !!! " + ex.Message);
}
}
private void OnNetworkIRT()
{
try
{
m_bSecondDisp = true;
if (m_cICReader == null) m_cICReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER);
if (m_sLastRecvData.Trim() != "") //망취소
m_nRecvRet = m_cICReader.SpcnCommPosForNetCancel(m_sSendData, m_sLastRecvData, ref m_sRecvData);
else
m_nRecvRet = m_cICReader.SpcnCommPos(m_sSendData, m_sSignData, m_sICData, m_sOilData, m_sAuthInfo, ref m_sRecvData);
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"Process Exception !!! " + ex.Message);
}
finally
{
m_bSecondDisp = false;
}
}
}
}