public bool VerifyUserNameAndCardNumber(string userName, string cardNumber, SmmProcessorEnum processor) { SqlConnection con = null; try { if (!string.IsNullOrEmpty(cardNumber)) { cardNumber = Crypto.SHA256Hash(cardNumber); } else { return(true); } con = Connect(); SqlCommand cmd = new SqlCommand("knsp_smmx_verifyUserNameAndCardNumber", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@user_name", userName); cmd.Parameters.AddWithValue("@card_hash", cardNumber); cmd.Parameters.AddWithValue("@processor", (int)processor); cmd.Parameters.Add("@outCode", SqlDbType.Int); cmd.Parameters["@outCode"].Direction = ParameterDirection.Output; cmd.ExecuteNonQuery(); return(GetInt(cmd, "@outCode") == 1); } catch (Exception ex) { //Logger.Instance.Error(this, "VerifyUserNameAndCardNumber", ex); return(false); } finally { Disconnect(con); } }
protected Dictionary <string, string> GetSMMConfig(string userName, string cardNumber, string customerNo, string targetClientId, bool isIgnoreMultiConfig = false) { Dictionary <string, string> dic = null; IProcessor processor = null; SmmProcessorEnum smmProcessor = SmmProcessorEnum.UNKNOWN; int productId = 0, productsetId = 0, count = 0, version = 0; productId = 0; if (!string.IsNullOrEmpty(targetClientId) && string.IsNullOrEmpty(customerNo)) { productsetId = SMMXDao.Instance.GetProductSetIdFromSmmxClientId(targetClientId, out version, out productId); if (productId != 0) { //version = SMMXDao.Instance.GetMobileCodfingVersion(userName, out productsetId, out productId, cardNumber, customerNo); dic = SMMXDao.Instance.GetServerConfigByProductId(productId, out count, cardNumber, targetClientId); smmProcessor = SmmClientHelper.GetSmmProcessorId(dic); if (smmProcessor != SmmProcessorEnum.FSV) { version = SMMXDao.Instance.GetMobileCodfingVersion(userName, out productsetId, out productId, cardNumber, customerNo); dic = SMMXDao.Instance.GetServerConfigByProductId(productId, out count, cardNumber, targetClientId); } } else { version = SMMXDao.Instance.GetMobileCodfingVersion(userName, out productsetId, out productId, cardNumber, customerNo); dic = SMMXDao.Instance.GetServerConfigByProductId(productId, out count, cardNumber, targetClientId); } } else { version = SMMXDao.Instance.GetMobileCodfingVersion(userName, out productsetId, out productId, cardNumber, customerNo); dic = SMMXDao.Instance.GetServerConfigByProductId(productId, out count, cardNumber, targetClientId); } if (count > 1 && !isIgnoreMultiConfig) { if (!string.IsNullOrEmpty(cardNumber) && string.IsNullOrEmpty(customerNo) && smmProcessor == SmmProcessorEnum.FIS) { processor = ProcessorFactory.Instance.GetProcessor(Constants.SMMX); customerNo = processor.GetCustomerNoForFis(cardNumber, dic, Constants.SMMX); if (string.IsNullOrEmpty(customerNo)) { //Logger.Instance.Error(this, string.Format("customer number empty in FIS for card: {0}, skip next step", StringUtils.MaskPAN16(cardNumber))); return(new Dictionary <string, string>()); } version = SMMXDao.Instance.GetMobileCodfingVersion(userName, out productsetId, out productId, cardNumber, customerNo); if (productId == 0) { //Logger.Instance.Error(this, string.Format(" no product id found for customer number: {0}", customerNo)); List <string> cards = processor.GetAllCardsForFis(customerNo, dic, Constants.SMMX); foreach (string s in cards) { version = SMMXDao.Instance.GetMobileCodfingVersion(userName, out productsetId, out productId, s, string.Empty); if (productId == 0) { continue; } else { break; } } if (productId != 0) { dic = SMMXDao.Instance.GetServerConfigByProductId(productId, out count, cardNumber, targetClientId); } else { //Logger.Instance.Error(this, string.Format("no product id found for card:{0}", StringUtils.MaskPAN16(cardNumber))); dic = new Dictionary <string, string>(); } } else { dic = SMMXDao.Instance.GetServerConfigByProductId(productId, out count, cardNumber, targetClientId); } } } else { if (dic == null || dic.Count <= 0) { //Logger.Instance.Error(this, string.Format("no product id found for card:{0}", StringUtils.MaskPAN16(cardNumber))); } } return(dic); }