private void ProcessOLSEnrollmentQuestions(string quoteNumber, string storeId, bool? paperlessFlag) { System.Data.DataTable result = DirectWebDAC.GetOLSEnrollmentValues(quoteNumber); var EmailVerificationCode = GetEmailVerificationCode(); bool paperlessSelected = paperlessFlag == true; bool callRecalc = false; IQuoteConfiguration config = IQuoteConfiguration.GetConfigurationInstance(); string emailTemplateName = config.Setting("DiscountCodeEmailTemplate"); // If OLSStatus is not in the correct status skip this logic and only update the row if it exists if (this.BusinessLogic().QHeader.OLSStatus >= OlsStatusPaperlessStoredId) { // New Quote insert the row into the table and send an email if (result.Rows.Count == 0) { // Need to call InitiateToken Call Here and pass in call below. string token = InitiateOLSToken(); if (!token.Equals(String.Empty) && !String.IsNullOrEmpty(quoteNumber)) { DirectWebDAC.InsertOLSEnrollmentValues(quoteNumber, storeId, paperlessSelected, EmailVerificationCode, this.BusinessLogic().QData.email, token); } else if (String.IsNullOrEmpty(quoteNumber)) { //Call failed update OLSStatus this.BusinessLogic().QHeader.OLSStatus = OlsStatusPaperlessStoredIdNegative; } QuoteServices olsServices = new QuoteServices(); if (!string.IsNullOrEmpty(QData.email) && !olsServices.ValidateOLSEmail(QData.email)) { // Insert values into BatchEmailMessageQueue DirectWebDAC.InsertValidationEmail(QHeader.PartnerId, quoteNumber, QData.email, QData.firstName, QData.lastName, EmailVerificationCode, storeId, paperlessSelected, config.PartnerName, emailTemplateName); } else { // User disregarded the error and will not get a discount this.BusinessLogic().QHeader.OLSStatus = OlsStatusEmailAlreadyEnrolled; // OLSStatus for invalid email } } // Quote exists in the table update the row else { // Check if the email is a new email, if it is update the email and the email veri if (!result.Rows[0]["emailAddress"].Equals(this.BusinessLogic().QData.email)) { // Call to get new token from OLS and pass in call below string token = InitiateOLSToken(); if (!token.Equals(String.Empty) && !String.IsNullOrEmpty(quoteNumber)) { DirectWebDAC.UpdateOLSEnrollment(quoteNumber, storeId, paperlessSelected, EmailVerificationCode, this.BusinessLogic().QData.email, token); UpdateDefaultWalmartDiscount("ASSOCIATE15"); } else if (String.IsNullOrEmpty(quoteNumber)) { //Call failed update OLSStatus this.BusinessLogic().QHeader.OLSStatus = OlsStatusPaperlessStoredIdNegative; } QuoteServices olsServices = new QuoteServices(); if (!string.IsNullOrEmpty(QData.email) && !olsServices.ValidateOLSEmail(QData.email)) { // Insert values into BatchEmailMessageQueue DirectWebDAC.InsertValidationEmail(QHeader.PartnerId, quoteNumber, QData.email, QData.firstName, QData.lastName, EmailVerificationCode, storeId, paperlessSelected, config.PartnerName, emailTemplateName); // Clear discount code and set callRecalc to true. callRecalc = true; //this.BusinessLogic().Quote.AutoPolicyNumber = String.Empty; //this.BusinessLogic().QData.cvgPartnerDiscount = String.Empty; if (qHeader.H04Ui_V2 == false) { // We do not need to call rating again for non-h04V2 states as this is called twice after the about you page. callRecalc = false; } this.BusinessLogic().Quote.Save(); } else { // User disregarded the error an will not get a discount this.BusinessLogic().QHeader.OLSStatus = OlsStatusEmailAlreadyEnrolled; // OLSStatus for invalid email } } // update the storeId as all other feilds will be unchanged. else if (!result.Rows[0]["CustomerTrackingId"].Equals(this.BusinessLogic().QData.storeID)) { DirectWebDAC.UpdateOLSEnrollment(quoteNumber, storeId, paperlessSelected, result.Rows[0]["emailverificationcode"].ToString(), this.BusinessLogic().QData.email, result.Rows[0]["Token"].ToString()); } else if (!result.Rows[0]["PaperlessFlag"].Equals(this.BusinessLogic().QData.paperless)) { DirectWebDAC.UpdateOLSEnrollment(quoteNumber, storeId, paperlessSelected, result.Rows[0]["emailverificationcode"].ToString(), this.BusinessLogic().QData.email, result.Rows[0]["Token"].ToString()); this.BusinessLogic().QHeader.OLSStatus = OlsStatusPaperlessStoredId; } } } // update the row even if the OLSStatus is not 1 to update the storeId and Paperless. // Do not allow the email to be updated as this will cause issue if OLSStatus becomes 1. else if (result.Rows.Count != 0) { DirectWebDAC.UpdateOLSEnrollment(quoteNumber, storeId, paperlessSelected, result.Rows[0]["emailverificationcode"].ToString(), result.Rows[0]["emailAddress"].ToString(), result.Rows[0]["Token"].ToString()); // Check to see if the user removed their storeid or unselected paperless. if (string.IsNullOrEmpty(storeId) || paperlessSelected == false) { if (this.BusinessLogic().QHeader.H04Ui_V2) { callRecalc = true; } this.BusinessLogic().Quote.AutoPolicyNumber = String.Empty; this.BusinessLogic().QData.cvgPartnerDiscount = String.Empty; this.BusinessLogic().Quote.Save(); } } // If we make a change that requires a new rating call then call it here. if (callRecalc) { this.ServiceInterface.CallRatingService(); //Strip out default if (this.BusinessLogic().Quote.AutoPolicyNumber.Equals("ASSOCIATE15")) { this.BusinessLogic().Quote.AutoPolicyNumber = String.Empty; this.BusinessLogic().QData.cvgPartnerDiscount = String.Empty; } } }