protected void ProfileButton_Click(object sender, EventArgs e) { if (Page.IsValid) { Member User = Member.Current; RegistrationFieldCreator.Save(User, this.CustomFields, true); User.AddToPointsBalance(AppSettings.Authentication.ProfilingSurveyReward, "Profiling survey"); User.Save(); Response.Redirect("~/status.aspx?type=profilerok"); } }
protected void Page_Load(object sender, EventArgs e) { if (Member.IsLogged && !ProfilingManager.IsProfiled(Member.Current)) { LangAdder.Add(ProfileButton, L1.SEND); LangAdder.Add(SkipButton, U3900.SKIP); if (AppSettings.Authentication.CustomFieldsAsSurvey) { var panel = RegistrationFieldCreator.Generate(true); Member User = Member.CurrentInCache; foreach (var control in panel.Controls) { if (control is TextBox || control is CheckBox) { WebControl target = (WebControl)control; string id = target.ID.Replace("CustomField", ""); if (User.Custom.ContainsKey(id)) { target.Enabled = false; if (control is TextBox) { ((TextBox)target).Text = User.Custom.ToList().FirstOrDefault(x => x.Key == id).Value.ToString(); } if (control is CheckBox) { ((CheckBox)target).Checked = Convert.ToBoolean(User.Custom.ToList().FirstOrDefault(x => x.Key == id).Value); } } } } CustomFields.Controls.Add(panel); } } }
public static void Register(string InUsername, string InEmail, int InPIN, DateTime InBirthYear, string InPassword, string InReferer, Gender InGender, Panel CustomFields, string FirstName, string SecondName, string Address, string City, string StateProvince, string ZipCode, bool isEarner, bool isAdvertiser, bool isPublisher, string FacebookId = null, bool skipRedirection = false) { AppSettings.Email.Reload(); bool IsFromFacebookOAuth = FacebookId != null ? true : false; // 0. Logged-in check if (Member.IsLogged) { throw new MsgException(U5009.LOGOUTTOREGISTER); } // 1. Validate if Username is not taken if (Member.Exists(InUsername)) { throw new MsgException(L1.ER_INVALIDUSERNAME3); } // Or forbidden if (!SecurityManager.IsOkWithRules(SecurityRuleType.Username, InUsername) || InUsername.Contains("refback")) { throw new MsgException(L1.UNAMEFORBID); } // 2. Validate if Email is not taken if (Member.ExistsWithEmail(InEmail)) { throw new MsgException(L1.ER_DUPLICATEEMAIL); } string currentip = IP.Current; CountryInformation CIService = new CountryInformation(currentip); // 0. Validate if Country/IP is not forbidden if (!SecurityManager.IsOkWithRules(SecurityRuleType.IP, currentip)) { throw new MsgException(L1.IPFORBID); } if (!SecurityManager.IsOkWithRules(SecurityRuleType.Country, CIService.CountryName)) { throw new MsgException(L1.COUNTRYFORBID); } // Validate if IP is not a proxy if (AppSettings.Proxy.IPPolicy == IPVerificationPolicy.EveryRegistration && ProxyManager.IsProxy(currentip)) { throw new MsgException(L1.IPAPROXY); } if (AppSettings.Site.AllowOnlyOneRegisteredIP) { int membersRegisteredWithThisIP = (int)TableHelper.SelectScalar( String.Format("SELECT COUNT(*) FROM Users WHERE RegisteredWithIP = '{0}'", currentip)); if (membersRegisteredWithThisIP > 0) { throw new MsgException(U5005.IPALREADYREGISTERED); } } AppSettings.DemoCheck(); //Validate if country is OK FeatureManager Manager = null; if (IsFromFacebookOAuth) { Manager = new FeatureManager(GeolocatedFeatureType.FacebookRegistration); } else { Manager = new FeatureManager(GeolocatedFeatureType.Registration); } if (!Manager.IsAllowed) { throw new MsgException(U4000.SORRYCOUNTRY); } // All data is OK. Now lets register Member NewMember = new Member(); NewMember.Name = InUsername; NewMember.Email = InEmail; NewMember.PIN = InPIN; NewMember.BirthYear = InBirthYear; NewMember.PrimaryPassword = MemberAuthenticationService.ComputeHash(InPassword); NewMember.FacebookOAuthId = FacebookId; //Detailed info? if (AppSettings.Authentication.DetailedRegisterFields) { NewMember.FirstName = FirstName; NewMember.SecondName = SecondName; NewMember.Address = Address; NewMember.City = City; NewMember.StateProvince = StateProvince; NewMember.ZipCode = ZipCode; NewMember.Gender = InGender; } //Custom fields? RegistrationFieldCreator.Save(NewMember, CustomFields); NewMember.CameFromUrl = (HttpContext.Current.Session == null || HttpContext.Current.Session["ReferralFrom"] == null) ? "Unknown" : HttpContext.Current.Session["ReferralFrom"].ToString().Replace("www.", ""); NewMember.Country = CIService.CountryName; NewMember.CountryCode = CIService.CountryCode; NewMember.MessageSystemTurnedOn = true; NewMember.RevenueShareAdsWatchedYesterday = 1000; //No yesterday, that is why we assume that he watched all NewMember.PointsBalance = 0; //Slot Machine Modlue if (AppSettings.TitanFeatures.SlotMachineEnabled) { try { NewMember.PointsBalance = (int)HttpContext.Current.Session["anonymousSlotMachinePoints"]; } catch (Exception slotError) { NewMember.SlotMachineChances = 1; ErrorLogger.Log(slotError); } } //Account type NewMember.IsEarner = isEarner; NewMember.IsAdvertiser = isAdvertiser; NewMember.IsPublisher = isPublisher; // Check if instant register or requires activation if (AppSettings.Authentication.IsInstantlyActivated || AppSettings.IsDemo || IsFromFacebookOAuth) { //Adding referer and points bonus NewMember.TryAddReferer(InReferer); //Add history entry History.AddRegistration(NewMember.Name); //Representatives policy TrySetRepresentativeAsReferer(NewMember, CIService); if (AppSettings.Proxy.SMSType == ProxySMSType.EveryRegistration) { NewMember.Register(MemberStatus.AwaitingSMSPIN); } else { if (NewMember.HasReferer) { var list = new List <RestrictionKind>(new RestrictionKind[] { RestrictionKind.DirectReferralsCount }); LeadershipSystem.CheckSystem(list, new Member(NewMember.ReferrerId)); } NewMember.Register(MemberStatus.Active); } //Registration Bonus TryApplyRegistrationBonus(Manager, NewMember); //Matrix MatrixBase matrix = MatrixFactory.GetMatrix(); if (matrix != null) { matrix.TryAddMember(NewMember); } if (!skipRedirection) { HttpContext.Current.Response.Redirect("~/status.aspx?type=registerok&id=register1"); } } else { try { Mailer.SendActivationLink(InUsername, InEmail); //Representatives policy TrySetRepresentativeAsReferer(NewMember, CIService); //Adding referer and points bonus NewMember.TryAddReferer(InReferer); NewMember.Register(MemberStatus.Inactive); //Add history entry History.AddRegistration(NewMember.Name); //Registration Bonus TryApplyRegistrationBonus(Manager, NewMember); //Matrix MatrixBase matrix = MatrixFactory.GetMatrix(); if (matrix != null) { matrix.TryAddMember(NewMember); } } catch (Exception ex) { ErrorLogger.Log(ex); throw new MsgException("The system was unable to send the activation e-mail. Contact the administrator."); } if (!skipRedirection) { HttpContext.Current.Response.Redirect("~/status.aspx?type=registerok&id=register2"); } } }
protected void Page_Load(object sender, EventArgs e) { GlobalMasterHelper.PageLoad(); AdBlockManager.CheckDenyForAll(); RegistrationCaptchaPlaceHolder.Visible = AppSettings.Registration.IsRegistrationCaptchaEnabled; PINSectionPlaceHolder.Visible = AppSettings.Registration.IsPINEnabled; if (!Page.IsPostBack) { AppSettings.Authentication.Reload(); if (Request.QueryString["e"] != null) { Email.Text = Request.QueryString["e"]; } if (TitanFeatures.IsRetireYoung) { ReferrerUtils.SetReferrer("RetireYoung"); } if (Request.QueryString["u"] != null || ReferrerUtils.GetReferrerName() != null) { string refUsername; if (Request.QueryString["u"] != null) { ReferrerUtils.SetReferrer(Request.QueryString["u"]); } refUsername = ReferrerUtils.GetReferrerName(); if (!Page.IsPostBack) { PoolRotatorManager.TryAddLinkView(refUsername); } // With referral link for Pool Rotator refUsername = PoolRotatorManager.TryGetUserNameFromPool(refUsername); Referer.Text = refUsername; } else if (Session["PaidToPromoteReferer"] != null) { var refId = Convert.ToInt32(Session["PaidToPromoteReferer"].ToString()); var refUsername = new Member(refId).Name; Referer.Text = refUsername; } } FeatureManager Manager = null; //Facebook OAuth if (IsFromFacebookOAuth) { //Check if country is eligible for Facebook Register Manager = new FeatureManager(GeolocatedFeatureType.FacebookRegistration); //Hide unnecessary fields FacebookMember fbMember = new FacebookMember(Session["accessToken"].ToString()); Email.Text = fbMember.Email; //Passwords validators RegularExpressionValidator2.Enabled = false; PasswordRequired.Enabled = false; ConfirmPasswordRequired.Enabled = false; PasswordCompare.Enabled = false; CustomValidator1.Enabled = false; TitanCaptcha.Visible = false; FirstName.Text = fbMember.FirstName; SecondName.Text = fbMember.LastName; } else { //Check if country is eligible for Standard Register Manager = new FeatureManager(GeolocatedFeatureType.Registration); } if (!Manager.IsAllowed) { RegistrationPanel.Visible = false; CreateUserButton.Visible = false; ErrorMessagePanel.Visible = true; ErrorMessage.Text = U4000.SORRYCOUNTRY; } //Set up textbox hints HintAdder.Add(Username, L1.REG_USERNAME); HintAdder.Add(Password, U3501.REG_PASSWORD); HintAdder.Add(Email, L1.REG_EMAIL); HintAdder.Add(PIN, L1.REG_PIN); HintAdder.Add(Referer, L1.REG_REFERER); Username.Attributes.Add("placeholder", L1.USERNAME); Email.Attributes.Add("placeholder", "Email"); Password.Attributes.Add("placeholder", L1.PASSWORD); ConfirmPassword.Attributes.Add("placeholder", L1.CONFIRMPASSWORD); PIN.Attributes.Add("placeholder", L1.DESIREDPIN); BirthYear.Attributes.Add("placeholder", L1.BIRTHYEAR); FirstName.Attributes.Add("placeholder", L1.FIRSTNAME); SecondName.Attributes.Add("placeholder", L1.SECONDNAME); City.Attributes.Add("placeholder", L1.CITY); StateProvince.Attributes.Add("placeholder", L1.STATEPROVINCE); ZipCode.Attributes.Add("placeholder", L1.ZIPCODE); Address.Attributes.Add("placeholder", L1.ADDRESS); //Add translations LangAdder.Add(CreateUserButton, L1.REGISTER); LangAdder.Add(RegularExpressionValidator1, L1.ER_INVALIDUSERNAME, true); LangAdder.Add(UserNameRequired, L1.REG_REQ_USERNAME, true); LangAdder.Add(EmailRequired, L1.REG_REQ_EMAIL, true); LangAdder.Add(CorrectEmailRequired, L1.ER_BADEMAILFORMAT, true); LangAdder.Add(PasswordRequired, L1.REG_REQ_PASS, true); LangAdder.Add(RegularExpressionValidator2, L1.ER_INVALIDPASS, true); LangAdder.Add(PasswordCompare, L1.ER_PASSDIFFER, true); LangAdder.Add(ConfirmPasswordRequired, L1.REG_REQ_CONFIRM, true); LangAdder.Add(RegularExpressionValidator3, L1.ER_BADPIN, true); LangAdder.Add(RequiredFieldValidator2, L1.REG_REQ_PIN, true); LangAdder.Add(RegularExpressionValidator4, L1.ER_BADYEAR, true); LangAdder.Add(RequiredFieldValidator1, L1.REG_REQ_YEAR, true); LangAdder.Add(RefererValidator, L1.ER_BADREF, true); LangAdder.Add(CustomValidator1, L1.ER_BADCAPTCHA, true); LangAdder.Add(CustomValidator4, L1.REG_REQ_TOS, true); EarnerCheckBox.Text = U6000.EARNER; AdvertiserCheckBox.Text = L1.ADVERTISER; PublisherCheckBox.Text = U6000.PUBLISHER; //Detailed info LangAdder.Add(RE_1, L1.DETAILEDNOSPECIAL + " " + L1.FIRSTNAME, true); LangAdder.Add(RF_1, L1.FIRSTNAME + " " + U3900.FIELDISREQUIRED, true); LangAdder.Add(RE_2, L1.DETAILEDNOSPECIAL + " " + L1.SECONDNAME, true); LangAdder.Add(RF_2, L1.SECONDNAME + " " + U3900.FIELDISREQUIRED, true); LangAdder.Add(RE_3, L1.DETAILEDNOSPECIAL + " " + L1.ADDRESS, true); LangAdder.Add(RF_3, L1.ADDRESS + " " + U3900.FIELDISREQUIRED, true); LangAdder.Add(RE_4, L1.DETAILEDNOSPECIAL + " " + L1.CITY, true); LangAdder.Add(RF_4, L1.CITY + " " + U3900.FIELDISREQUIRED, true); LangAdder.Add(RE_5, L1.DETAILEDNOSPECIAL + " " + L1.STATEPROVINCE, true); LangAdder.Add(RF_5, L1.STATEPROVINCE + " " + U3900.FIELDISREQUIRED, true); LangAdder.Add(RE_6, L1.DETAILEDNOSPECIAL + " " + L1.ZIPCODE, true); LangAdder.Add(RF_6, L1.ZIPCODE + " " + U3900.FIELDISREQUIRED, true); LangAdder.Add(AccountTypeValidator, U6000.SELECTACCOUNTTYPE, true); //Check detailed info if (AppSettings.Authentication.DetailedRegisterFields) { DetailedPanel.Visible = true; } AvailableRolesPlaceHolder.Visible = !AppSettings.Registration.IsDefaultRegistrationStatusEnabled; EarnerCheckBoxPlaceHolder.Visible = AppSettings.TitanFeatures.EarnersRoleEnabled; AdvertiserCheckBoxPlaceHolder.Visible = AppSettings.TitanFeatures.AdvertisersRoleEnabled; PublisherCheckBoxPlaceHolder.Visible = AppSettings.TitanFeatures.PublishersRoleEnabled; if (AppSettings.Registration.IsDefaultRegistrationStatusEnabled) { EarnerCheckBox.Checked = AppSettings.Registration.IsDefaultEarnerStatus; AdvertiserCheckBox.Checked = AppSettings.Registration.IsDefaultAdvertiserStatus; PublisherCheckBox.Checked = AppSettings.Registration.IsDefaultPublisherStatus; } //Custom field CustomFields.Controls.Add(RegistrationFieldCreator.Generate()); CountryInformation CIService = new CountryInformation(IP.Current); CountryName.Text = CIService.CountryName; Flag.ImageUrl = "~/Images/Flags/" + CIService.CountryCode.ToLower() + ".png"; }