/// <summary> /// Write client validation scripts to browser if user can add cards /// </summary> protected override void setCardValidationClientScripts() { if (!_RegisteredCardsOnly) { Page.ClientScript.RegisterClientScriptBlock(typeof(string), "ValidationMessages", string.Format(ValidationScriptMessages, EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardMissingCard") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardBadCard") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardMissingName") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardMissingExpDate") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCard") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateRemoveCard") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateAddCardExpired") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateStreetAddressRequired") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateCityRequired") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateStateRequired") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateSelectCardType") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateZipRequired") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateNumberRequired") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateNeighborhoodRequired") as string), EscapeJavascriptQuotes(GetLocalResourceObject("ValidateTokenizationFailed") as string), EscapeJavascriptQuotes(GetGlobalResourceObject("MyHL_ErrorMessage", "InvalidNickname") as string), EscapeJavascriptQuotes(GetGlobalResourceObject("MyHL_ErrorMessage", "DuplicateCardError") as string))); } Page.ClientScript.RegisterClientScriptBlock(typeof(string), "RegisterdCardsOnly", string.Format(ScriptBlock, string.Concat("var registeredCards = ", _RegisteredCardsOnly.ToString().ToLower(), ";"))); Page.ClientScript.RegisterClientScriptBlock(typeof(string), "ControlNamingPrefix", string.Format(ScriptBlock, string.Concat("var prefix = '", txtCardHolderName.ClientID.Replace(txtCardHolderName.ID, string.Empty), "';"))); //Tokenization for added cards bool disableTokenization = Settings.GetRequiredAppSetting <bool>("TokenizationDisabled", false); this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "TokenizationDisabled", string.Format(ScriptBlock, string.Concat("var tokenizationDisabled = ", disableTokenization.ToString().ToLower()), ";")); try { var seamlessCredentials = CookieHandler.GetSeamlessCredentials(); if (seamlessCredentials != null && seamlessCredentials.AuthenticationToken != null) { this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "AuthToken", string.Format(ScriptBlock, string.Concat("var authToken = '", seamlessCredentials.AuthenticationToken.ToString(), "';"))); } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine("CookieHandler::GetSeamlessCredentials() error. Error description: {0}", ex.Message); (new HLErrorAuditEvent("CookieHandler::GetSeamlessCredentials()", CookieHandler.GetSeamlessCredentials(), ex)).Raise(); } //this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "NickNamesList", string.Format(ScriptBlock, string.Concat("var nickNamesList = '", GetNickNamesList(), "';"))); hdNickNameList.Value = GetNickNamesList(); chkSaveCreditCard.Attributes.Add("onclick ", "CheckSaveBoxSettings(event)"); chkMakePrimaryCreditCard.Attributes.Add("onclick ", "CheckPrimaryBoxSettings(event)"); }
// ======================================================================================== /// <summary> /// /// </summary> /// <param name=""></param> // ======================================================================================== protected virtual void setCardValidationClientScripts() { string onClientClick = string.Empty; string disableTokens = System.Configuration.ConfigurationManager.AppSettings["TokenizationDisabled"]; this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "TokenizationDisabled", string.Format(ScriptBlock, string.Concat("var tokenizationDisabled = ", string.IsNullOrEmpty(disableTokens) ? false.ToString().ToLower() : disableTokens.ToString().ToLower()), ";")); this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "AuthToken", string.Format(ScriptBlock, string.Concat("var authToken = '", CookieHandler.GetSeamlessCredentials().AuthenticationToken.ToString(), "';"))); this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "ValidationMessages", string.Format(ValidationScriptMessages, EscapeJavascriptQuotes(GetResourceString(ValidateAddCardMissingCard)), EscapeJavascriptQuotes(GetResourceString(ValidateAddCardBadCard)), EscapeJavascriptQuotes(GetResourceString(ValidateAddCardMissingName)), EscapeJavascriptQuotes(GetResourceString(ValidateAddCardMissingExpDate)), EscapeJavascriptQuotes(GetResourceString(ValidateAddCard)), EscapeJavascriptQuotes(GetResourceString(ValidateAddCardExpired)), EscapeJavascriptQuotes(GetResourceString(ValidateStreetAddressRequired)), EscapeJavascriptQuotes(GetResourceString(ValidateCityRequired)), EscapeJavascriptQuotes(GetResourceString(ValidateStateRequired)), EscapeJavascriptQuotes(GetResourceString(ValidateZipRequired)), EscapeJavascriptQuotes(GetResourceString(ValidateSelectCardType)), EscapeJavascriptQuotes(GetResourceString(ValidateTokenizationFailed)), EscapeJavascriptQuotes(GetResourceString(ValidateCVVRequired)) )); // Control binding var controls = GetControls(Page); // TODO, filter only significant controls to avoid overhead .Where(c => c is TextBox); ; Why not use FindControl? var textboxes = controls.OfType <TextBox>(); LinkButton btnSubmit = (LinkButton)controls.Where(c => c is LinkButton && c.ID == SubmitButtonControlId).FirstOrDefault(); if (btnSubmit == null) { return; } //btnSubmit.OnClientClick = "return ValidateNewCard(event, this);"; TextBox txtCardNumber = textboxes.Where(c => c.ID == CardNumberControlId).FirstOrDefault(); TextBox txtCardName = textboxes.Where(c => c.ID == CardNameControlId).FirstOrDefault(); TextBox txtCVV = textboxes.Where(c => c.ID == CVVControlId).FirstOrDefault(); TextBox txtCardHolderName = textboxes.Where(c => c.ID == CardHolderControlId).FirstOrDefault(); TextBox txtStreetAddress = textboxes.Where(c => c.ID == StreetAddressControlId).FirstOrDefault(); TextBox txtCity = textboxes.Where(c => c.ID == CityControlId).FirstOrDefault(); TextBox txtState = textboxes.Where(c => c.ID == StateControlId).FirstOrDefault(); TextBox txtZip = textboxes.Where(c => c.ID == ZipControlId).FirstOrDefault(); Control lblMessage = this.Parent.FindControl(MessageLabelControlId); DropDownList ddlCardType = (DropDownList)controls.Where(c => c is DropDownList && c.ID == CardTypeControlId).FirstOrDefault(); DropDownList ddlExpMonth = (DropDownList)controls.Where(c => c is DropDownList && c.ID == ExpirationMonthControlId).FirstOrDefault(); DropDownList ddlExpYear = (DropDownList)controls.Where(c => c is DropDownList && c.ID == ExpirationYearControlId).FirstOrDefault(); StringBuilder sb = new StringBuilder(); sb.Append(string.Format("var txtCardNameControlName = '{0}';", GetControlName(txtCardName))); sb.Append(string.Format("var txtCardHolderNameControlName = '{0}';", GetControlName(txtCardHolderName))); sb.Append(string.Format("var txtCVVControlName = '{0}';", GetControlName(txtCVV))); sb.Append(string.Format("var txtCardNumberControlName = '{0}';", GetControlName(txtCardNumber))); sb.Append(string.Format("var txtStreetAddressControlName = '{0}';", GetControlName(txtStreetAddress))); sb.Append(string.Format("var txtCityControlName = '{0}';", GetControlName(txtCity))); sb.Append(string.Format("var txtStateControlName = '{0}';", GetControlName(txtState))); sb.Append(string.Format("var txtZipControlName = '{0}';", GetControlName(txtZip))); sb.Append(string.Format("var ddlCardtypeControlName = '{0}';", GetControlName(ddlCardType))); sb.Append(string.Format("var ddlExpMonthControlName = '{0}';", GetControlName(ddlExpMonth))); sb.Append(string.Format("var ddlExpYearControlName = '{0}';", GetControlName(ddlExpYear))); sb.Append(string.Format("var btnSubmitControlName = '{0}';", GetControlName(btnSubmit))); sb.Append(string.Format("var lblMessageControlName = '{0}';", GetControlName(lblMessage))); sb.Append(string.Format("var hdnValidationsControlName = '{0}';", GetControlName(hdnValidations))); string script = sb.ToString(); this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "ClientControlsRegistration", string.Format(ScriptBlock, script)); this.Page.ClientScript.RegisterClientScriptBlock(typeof(string), "DontTokenizeJustMaskAndUseSessionStorage", string.Format(ScriptBlock, string.Concat("var DontTokenizeJustMaskAndUseSessionStorage = ", DontTokenizeJustMaskAndUseSessionStorage.ToString().ToLower()), ";")); List <HPSCreditCardType> cardValidations = GetCardValidations(); cardValidations.ForEach(cv => hdnValidations.Value += string.Concat(cv.Code, "=", cv.CardNumberValidationRegexText, ";")); }