/// <summary> /// Add new Profile in MainWindow UserList based on signup info /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void SignupToMainButton_Click(object sender, RoutedEventArgs e) { bool inputFieldsEmpty; // lists for signup input fields var textBoxes = new TextBox[] { EmailInput, SignupUsernameInput, BattetagInput }; var passwordBoxes = new PasswordBox[] { SignupPasswordBox, SignupConfirmPasswordBox }; //if any input fields on signup page empty, set boolean if (textBoxes.Any(tb => string.IsNullOrEmpty(tb.Text)) || passwordBoxes.Any(pb => string.IsNullOrEmpty(pb.Password))) { inputFieldsEmpty = true; } else { inputFieldsEmpty = false; } //check inputs before completing sign-up if (inputFieldsEmpty) { InvalidSignupPrompt("Please enter input for all fields!"); ValidSignup = false; } else if (!String.Equals(SignupPasswordBox.Password, SignupConfirmPasswordBox.Password)) { InvalidSignupPrompt("Password fields don't match!"); ValidSignup = false; } else if (SignupUsernameInput.Text.Length > 20) { InvalidSignupPrompt("Maximum Username length is 20 characters"); ValidSignup = false; } else { String newEmail = EmailInput.Text; String newUsername = SignupUsernameInput.Text; String newPassword = SignupPasswordBox.Password; //password is case sensitive String newBattleTag = BattetagInput.Text; //set boolean for valid sign-up after checking for conflicts with existing users foreach (Profile user in MainWindow.UserList) { String existingEmail = user.Email; String existingBattleTag = user.BattleTag; Dictionary <String, String> existingLogins = user.getUsernamePassword(); //check if signup info conflicts with existing user's info if (String.Equals(newEmail, existingEmail)) { InvalidSignupPrompt("This Email is already registered!"); ValidSignup = false; break; } else if (String.Equals(newBattleTag, existingBattleTag)) { InvalidSignupPrompt("This BattleTag is already registered!"); ValidSignup = false; break; } else if (existingLogins.ContainsKey(newUsername)) { InvalidSignupPrompt("This Username is already registered!"); ValidSignup = false; break; } else { InvalidSignupText.Visibility = Visibility.Hidden; ValidSignup = true; } } } if (ValidSignup) { String newEmail = EmailInput.Text; String newUsername = SignupUsernameInput.Text; //username case sensitive String newPassword = SignupPasswordBox.Password; //password is case sensitive String newBattleTag = BattetagInput.Text; //hide previous signup elements EmailText.Visibility = UsernameText.Visibility = Visibility.Hidden; PasswordText.Visibility = ConfirmPasswordText.Visibility = BattetagText.Visibility = Visibility.Hidden; EmailInput.Visibility = SignupUsernameInput.Visibility = Visibility.Hidden; SignupPasswordBox.Visibility = SignupConfirmPasswordBox.Visibility = BattetagInput.Visibility = Visibility.Hidden; //show next signup elements SignupRoleText.Visibility = SignupHeroText.Visibility = SignupGameModeText.Visibility = Visibility.Visible; SignupRoleComboBox.Visibility = SignupHeroComboBox.Visibility = SignupGameModeComboBox.Visibility = Visibility.Visible; SignupBackButton.Visibility = Visibility.Visible; SignupToMainButton.ToolTip = "Finish Sign-up input and proceed to confirmation"; SignupToMainButton.Content = "FINISH"; //check if any of the dropdown menus have a null entry if (!secondClick) { secondClick = true; } else if ((SignupRoleComboBox.SelectedIndex == -1) && secondClick) { InvalidSignupPrompt("Please make a selection for your preferred Role!"); } else if ((SignupHeroComboBox.SelectedIndex == -1) && secondClick) { InvalidSignupPrompt("Please make a selection for your preferred Hero!"); } else if ((SignupGameModeComboBox.SelectedIndex == -1) && secondClick) { InvalidSignupPrompt("Please make a selection for your preferred Game Mode!"); } else { //hide next signup elements SignupRoleText.Visibility = SignupHeroText.Visibility = SignupGameModeText.Visibility = Visibility.Hidden; SignupRoleComboBox.Visibility = SignupHeroComboBox.Visibility = SignupGameModeComboBox.Visibility = Visibility.Hidden; SignupBackButton.Visibility = Visibility.Hidden; //show user input for them to review before confirmation ReviewEmailText.Visibility = ReviewUsernameText.Visibility = ReviewPasswordText.Visibility = ReviewBattletagText.Visibility = Visibility.Visible; ReviewRoleText.Visibility = ReviewHeroText.Visibility = ReviewGameModeText.Visibility = Visibility.Visible; ReviewEmailText.Text = "Email: " + newEmail; ReviewUsernameText.Text = "Username: "******"Password: "******"BattleTag: " + newBattleTag; ReviewRoleText.Text = "Role: " + (String)SignupRoleComboBox.SelectedItem; ReviewHeroText.Text = "Hero: " + (String)SignupHeroComboBox.SelectedItem; ReviewGameModeText.Text = "Game Mode: " + (String)SignupGameModeComboBox.SelectedItem; SignupBackButton.Visibility = Visibility.Visible; SignupToMainButton.ToolTip = "Confirm Sign-up and return to Login"; SignupToMainButton.Content = "CONFIRM"; if (SignupToMainButton.Content.Equals("CONFIRM") && thirdClick) { //instantiate new user profile Profile newUser = new Profile(newEmail, newUsername, newPassword, newBattleTag); //set role, hero, game mode for new profile newUser.Role = (String)SignupRoleComboBox.SelectedItem; newUser.Hero = (String)SignupHeroComboBox.SelectedItem; newUser.GameMode = (String)SignupGameModeComboBox.SelectedItem; //add new profile to list of users MainWindow.UserList.Add(newUser); PageSwitcher.Switch(new LoginPage()); } else { thirdClick = true; } } } }