public static ServiceRequestManager GetSessionInstance() { if (_instance == null) { _instance = new ServiceRequestManager(); } return(_instance); }
//Input: UserName, Session_ID //ChungNN - 01/2009 public OutputInfo CheckValid(string UserName, string Session_ID, string Request_ID, string MerchantID, string targetMsIsdn, Int32 amount, ref string ProviderCode) { OutputInfo outObj = new OutputInfo(); TransferProcess proObj = new TransferProcess(); HttpApplication appObj = new HttpApplication(); string strIPAddress = HttpContext.Current.Request.UserHostAddress; string strSession_ID = Session_ID; byte nErrorNum = 0; string strLogMessage = string.Empty; //0: Successful //1: Invalid userName or Session_ID //2: Invalid IP Address //3: Invalid targetMsIsdn or provider is not exist //4: Request_ID is exist //5: Invalid amount DataSet dsDataList = new DataSet(); DataTable tblResult = new DataTable(); #region Check username and Session_ID. nErrorNum = 1; //check username and password is null? if (UserName != null && Session_ID != null) { //check if sessionid is existed if (ServiceSessionManager.GetSessionInstance().IsExistedSession(UserName, Session_ID)) { nErrorNum = 0; } } #endregion Check username and Session_ID #region Check IP address if login successfull if (nErrorNum == 0) { nErrorNum = (byte)((Check_Valid_IPAddress(strIPAddress)? 0:2)); } #endregion Check IP address if login successfull #region Check valid targetMsIsdn if (nErrorNum == 0) { dsDataList = null; dsDataList = Xml_2_DateSet(HttpContext.Current.Server.MapPath("") + "\\" + AppConfiguration.AppData_FileName); tblResult = dsDataList.Tables["ProviderList"]; HttpContext hc = HttpContext.Current; if (targetMsIsdn.Length < 10 || targetMsIsdn.Length > 15) { nErrorNum = 3; } //if no provider to check else if (tblResult.DefaultView.Count == 0) { nErrorNum = 3; } else { nErrorNum = 3; string strPrefix = string.Empty; for (int i = 0; i < tblResult.DefaultView.Count; i++) { strPrefix = tblResult.DefaultView[i].Row["Prefix"].ToString(); if (targetMsIsdn.IndexOf(strPrefix, 0, strPrefix.Length) != -1) { nErrorNum = 0; ProviderCode = tblResult.DefaultView[i].Row["ProviderCode"].ToString().Trim(); break; } } } tblResult = null; dsDataList = null; } #endregion Check valid targetMsIsdn #region Check valid acmount if (nErrorNum == 0) { if (Array.IndexOf(AppConfiguration.AppAmountArray, amount) == -1) { nErrorNum = 5; } } #endregion Check valid acmount #region Check valid Request_ID if (nErrorNum == 0) { if (UserName != null && Request_ID != null) { //check if Request_ID is existed if (ServiceRequestManager.GetInstance().IsContainRequest(Request_ID, UserName)) { nErrorNum = 4; } else { ServiceRequestManager.GetInstance().AddRequest(Request_ID, UserName); nErrorNum = 0; } } } #endregion Check valid Trans_ID #region return and log if (nErrorNum == 0) { outObj.status = "0"; //outObj.message = "Login successfull."; //strLogMessage = "Login EPay sucessfull. (RequestID=" + Request_ID + ", UserName="******", IPAddress=" + strIPAddress + ")"; } else { outObj.status = nErrorNum.ToString(); outObj.trans_id = "0"; if (nErrorNum == 1) { outObj.message = "Invalid user name or session_id."; strLogMessage = "Load fail, invalid user name or session_id. (RequestID=" + Request_ID + ", UserName="******", IPAddress=" + strIPAddress + ")"; } else if (nErrorNum == 2) { outObj.message = "Invalid IP address."; strLogMessage = "Load failure, invalid IP address. (RequestID=" + Request_ID + ", UserName="******", IPAddress=" + strIPAddress + ")"; } else if (nErrorNum == 3) { outObj.message = "Invalid phone number or service provider not exist."; strLogMessage = "Load failure, invalid targetMsIsdn or provider is not exist. (RequestID=" + Request_ID + ", UserName="******", IPAddress=" + strIPAddress + ")"; } else if (nErrorNum == 4) { outObj.message = "Request_ID is exist."; strLogMessage = "Load failure, request_id is exist. (RequestID=" + Request_ID + ", UserName="******", IPAddress=" + strIPAddress + ")"; } else if (nErrorNum == 5) { outObj.message = "Invalid amount." + amount.ToString(); strLogMessage = "Load failure, ivalid amount. (RequestID=" + Request_ID + ", UserName="******", IPAddress=" + strIPAddress + ")"; } //write log if error proObj.WriteLog(strLogMessage); } #endregion return and log return(outObj); }