public static qPtl_User RegisterNewUser(RegistrationData data) { int existing_user_id = 0; int new_space_id = 0; string sqlCode = string.Empty; // Redundancy check -- write Highest Level into qPtl_User table in case DB trigger not working qPtl_Role role = new qPtl_Role(data.default_role_id); // add user qPtl_User new_user = new qPtl_User(); new_user.Available = "Yes"; new_user.OrgUnitID = data.scope_id; new_user.ScopeID = data.scope_id; new_user.Created = DateTime.Now; new_user.CreatedBy = 0; new_user.LastModified = DateTime.Now; new_user.LastModifiedBy = 0; new_user.MarkAsDelete = 0; new_user.Status = ""; // used to include a default message for their status, now leave blank new_user.FirstName = data.firstname; new_user.LastName = data.lastname; new_user.Email = data.email; new_user.UserName = data.username; string password_for_storing = FormsAuthentication.HashPasswordForStoringInConfigFile(data.password, "sha1"); new_user.Password = password_for_storing; new_user.AccountStatus = "Active"; new_user.HighestRank = role.RoleRank; new_user.HighestRole = role.RoleName; new_user.Insert(); existing_user_id = new_user.UserID; DateTime DOB; try { DOB = Convert.ToDateTime(data.dob); } catch { // no valid date so use default value DOB = Convert.ToDateTime("1/1/1900"); } // add user profile qPtl_UserProfile new_profile = new qPtl_UserProfile(); new_profile.UserID = existing_user_id; new_profile.ScopeID = data.scope_id; new_profile.Available = "Yes"; new_profile.Created = DateTime.Now; new_profile.CreatedBy = existing_user_id; new_profile.LastModified = DateTime.Now; new_profile.LastModifiedBy = existing_user_id; new_profile.MarkAsDelete = 0; new_profile.Style = "default"; new_profile.Visibility = "all"; new_profile.Division = data.division; new_profile.Agency = data.agency; new_profile.Position = data.position; new_profile.Degrees = data.degrees; new_profile.Address1 = data.address; new_profile.Address2 = data.address2; new_profile.City = data.city; new_profile.StateProvince = data.state; new_profile.PostalCode = data.postal_code; new_profile.Country = data.country; new_profile.Gender = data.gender; new_profile.DOB = DOB; new_profile.Race = data.race; new_profile.EmploymentLocation = data.employment_location; new_profile.EmploymentSetting = data.employment_setting; new_profile.WorkSites = data.employment_sites; new_profile.Profession = data.profession; new_profile.Phone1 = data.work_phone; new_profile.Phone1Type = "work"; new_profile.Insert(); qPtl_User user = new qPtl_User(existing_user_id); // add user communication preference if (!String.IsNullOrEmpty(user.Email)) { qCom_UserPreference connect = new qCom_UserPreference(); connect.UserID = user.UserID; connect.Created = DateTime.Now; connect.CreatedBy = user.UserID; connect.LastModified = DateTime.Now; connect.LastModifiedBy = user.UserID; connect.Available = "Yes"; connect.ScopeID = 1; connect.MarkAsDelete = 0; connect.OkBulkEmail = "Yes"; connect.OkEmail = "Yes"; connect.OkSms = "Yes"; connect.LanguageID = 1; connect.Insert(); } // **************************************************** // STEP 5: Add User Role & Supporting Role Structures // Add role /* * qPtl_UserRole role = new qPtl_UserRole(); * role.UserID = user.UserID; * role.RoleID = role_id; * role.Insert(); */ qDbs_SQLcode sql = new qDbs_SQLcode(); sqlCode = "INSERT INTO qPtl_UserRoles ([UserID],[RoleID]) VALUES(" + user.UserID + "," + data.default_role_id + ")"; sql.ExecuteSQL(sqlCode); // Add possible role actions for the new user role AddRoleAction(data.default_role_id, data.scope_id, user); // add folder for user_data string rootLocation = HttpContext.Current.Server.MapPath("~/") + "user_data\\"; if (!Directory.Exists(rootLocation + user.UserName)) { Directory.CreateDirectory(rootLocation + user.UserName); } if (new_user.UserID > 0) { return(new_user); } else { return(null); } }
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."; } } }