Example #1
0
 public static ServiceRequestManager GetSessionInstance()
 {
     if (_instance == null)
     {
         _instance = new ServiceRequestManager();
     }
     return(_instance);
 }
Example #2
0
        //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);
        }