Exemplo n.º 1
0
    protected void btnVerify_Click(object sender, EventArgs e)
    {
        int    curr_user_id = Convert.ToInt32(Context.Items["UserID"]);
        string pin          = txtMobileVerify.Text;
        string return_url   = string.Empty;

        if (!String.IsNullOrEmpty(lblReturnURL.Text))
        {
            return_url = lblReturnURL.Text;
        }

        qCom_UserPreference comm = qCom_UserPreference.GetUserPreference(curr_user_id);
        qPtl_User           user = new qPtl_User(curr_user_id);

        string dbPIN = Convert.ToString(comm.MobilePIN);

        if (dbPIN == pin)
        {
            comm.OkSms             = "Yes";
            comm.ConfirmSms        = "Yes";
            comm.MobilePINverified = DateTime.Now;
            comm.Update();

            if (!String.IsNullOrEmpty(return_url))
            {
                Response.Redirect(lblReturnURL.Text);
            }
            else
            {
                litMsg.Text = "* PIN successfully validated. You will start receiving messages shortly";
            }
        }
        else
        {
            comm.OkSms = "No";
            comm.Update();

            litMsg.Text = "* WARNING: the PIN your entered does not match the one we sent to your phone. Please try again. If this problem continues, please contact support using the link below.<br><br>";
        }
    }
Exemplo n.º 2
0
    protected void btnEnroll_Click(object sender, EventArgs e)
    {
        // run check for mobile text
        if (!String.IsNullOrEmpty(lblCampaignID.Text))
        {
            campaign_id = Convert.ToInt32(lblCampaignID.Text);
        }
        return_url = lblReturnURL.Text;
        string mobile_number  = txtMobileNumber.Text;
        bool   error_occurred = false;
        bool   phone_belongs_to_another_user = false;

        // check to see if this number is already being used by another user
        int curr_user_id = Convert.ToInt32(Context.Items["UserID"]);
        int scope_id     = Convert.ToInt32(Context.Items["ScopeID"]);

        var check_user = qPtl_User.GetUserByPhone(txtMobileNumber.Text, scope_id);

        if (check_user.UserID > 0)
        {
            if (check_user.UserID != curr_user_id)
            {
                error_occurred = true;
                phone_belongs_to_another_user = true;
            }
        }

        // replace characters
        if (mobile_number.Contains("-"))
        {
            mobile_number = mobile_number.Replace("-", "");
        }

        if (mobile_number.Contains("."))
        {
            mobile_number = mobile_number.Replace(".", "");
        }

        if (mobile_number.Contains("/"))
        {
            mobile_number = mobile_number.Replace("/", "");
        }

        if (mobile_number.Contains("("))
        {
            mobile_number = mobile_number.Replace("(", "");
        }

        if (mobile_number.Contains(")"))
        {
            mobile_number = mobile_number.Replace(")", "");
        }

        if (mobile_number.Contains("*"))
        {
            mobile_number = mobile_number.Replace("*", "");
        }

        if (mobile_number.Contains(" "))
        {
            mobile_number = mobile_number.Replace(" ", "");
        }

        try
        {
            string first_char = mobile_number.Substring(0, 1);
            if (mobile_number.Length == 11 && first_char == "1")
            {
                mobile_number = mobile_number.Substring(1, 10);
            }
        }
        catch
        {
            litMsg.Text    = "<br><br>* Make sure to enter a 10 digit phone number";
            error_occurred = true;
        }

        if (String.IsNullOrEmpty(mobile_number))
        {
            litMsg.Text    = "<br><br>* Make sure to enter a 10 digit phone number";
            error_occurred = true;
        }

        string pat_m = @"^[0-9]{10}$";
        Regex  r_m   = new Regex(pat_m, RegexOptions.IgnoreCase);
        Match  m_m   = r_m.Match(mobile_number);

        if (!m_m.Success)
        {
            error_occurred = true;
            litMsg.Text    = "<br><br>* Make sure to enter a 10 digit phone number";
        }

        if (error_occurred == false)
        {
            if (btnEnroll.Text == "Turn Off Text Messages")
            {
                qCom_UserPreference pref = new qCom_UserPreference(curr_user_id);
                pref.OkSms = "No";
                pref.Update();
            }
            else
            {
                // save phone number to profile
                qPtl_UserProfile profile = new qPtl_UserProfile(curr_user_id);
                if (profile.Phone1Type == "Mobile")
                {
                    profile.Phone1     = string.Empty;
                    profile.Phone1Type = string.Empty;
                }
                if (profile.Phone2Type == "Mobile")
                {
                    profile.Phone2     = string.Empty;
                    profile.Phone2Type = string.Empty;
                }
                profile.Phone1     = txtMobileNumber.Text;
                profile.Phone1Type = "Mobile";

                profile.Update();

                // add new mobile verification code to qCom_UserPreferences
                var pref    = qCom_UserPreference.GetUserPreference(curr_user_id);
                int new_pin = qCom_UserPreference.GenerateMobilePIN();

                if (pref != null)
                {
                    if (pref.UserID > 0)
                    {
                        pref.MobilePIN = Convert.ToString(new_pin);
                        pref.Update();
                    }
                }
                else
                {
                    qCom_UserPreference pref2 = new qCom_UserPreference();
                    pref2.ScopeID        = Convert.ToInt32(Context.Items["ScopeID"]);
                    pref2.Available      = "Yes";
                    pref2.Created        = DateTime.Now;
                    pref2.CreatedBy      = curr_user_id;
                    pref2.LastModified   = DateTime.Now;
                    pref2.LastModifiedBy = curr_user_id;
                    pref2.UserID         = curr_user_id;
                    pref2.OkBulkEmail    = "Yes";
                    pref2.OkSms          = "Yes";
                    pref2.OkEmail        = "Yes";
                    pref2.MobilePIN      = Convert.ToString(new_pin);
                    pref2.Insert();
                }

                // get correct DID
                string alt_did = string.Empty;
                // see if user has custom record
                var camp_pref = qCom_UserCampaignPreference.GetUserCampaignPreferences(campaign_id, curr_user_id);
                if (camp_pref != null)
                {
                    alt_did = camp_pref.DID;
                }
                else
                {
                    // see if campaign has available dedicated DIDs
                    qSoc_Campaign campaign = new qSoc_Campaign(campaign_id);
                    qPtl_User     user     = new qPtl_User(curr_user_id);
                    alt_did = AddCampaignUserPreference(campaign, user, scope_id);

                    if (String.IsNullOrEmpty(alt_did))
                    {
                        alt_did = System.Configuration.ConfigurationManager.AppSettings["SMSDid"];
                    }
                }

                string alt_pin_message_uri = string.Empty;
                var    c_pref = qCom_CampaignPreference.GetCampaignPreferences(campaign_id);
                if (c_pref != null)
                {
                    if (c_pref.CampaignPreferenceID > 0)
                    {
                        alt_pin_message_uri = c_pref.MobileVerifySMSURI;
                    }
                }

                // send mobile pin
                qCom_UserPreference.SendMobilePIN(Convert.ToString(new_pin), curr_user_id, alt_did, alt_pin_message_uri);

                plhManage.Visible = false;
                plhVerify.Visible = true;
            }
        }
        else
        {
            if (phone_belongs_to_another_user == true)
            {
                litMsg.Text = "<br><br>* This phone number belongs to another user.";
            }
        }
    }