예제 #1
0
        private void registerBtn_Click(object sender, EventArgs e)
        {
            bool valid = false;

            if ((nameRegisterTxt.Text != "Nombre" && nameRegisterTxt.Text != null) && (lastNameRegisterTxt.Text != "Apellidos" && lastNameRegisterTxt.Text != null) && (emailRegisterTxt.Text != "Correo electrónico" && emailRegisterTxt.Text != "null") && (pwdRegisterTxt.Text != "Contraseña" && pwdRegisterTxt.Text != null) && (womanRegisterRadioBtn.Checked || manRegisterRadioBtn.Checked))
            {
                string pattern = "^([0-9a-zA-z]([-\\.\\w]*[0-9a-zA-z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)" +
                                 "[a-zA-Z]{2,9})$";
                if (Regex.IsMatch(emailRegisterTxt.Text, pattern))
                {
                    valid = true;
                }
                else
                {
                    MessageBox.Show("Correo electrónico inválido.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                if (pwdRegisterTxt.Text.Length > 7)
                {
                    valid = true;
                }
                else
                {
                    MessageBox.Show("Tu contraseña debe tener al menos 8 caracteres.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    pwdRegisterTxt.Text = "Contraseña";
                    pwdRegisterTxt.UseSystemPasswordChar = false;
                    pwdRegisterTxt.ForeColor             = SystemColors.InactiveCaption;

                    return;
                }

                var ts   = DateTime.Now - birthdayRegisterTxt.Value;
                var year = Convert.ToInt32(DateTime.MinValue.Add(ts).Year);
                if (year > 0)
                {
                    year -= 1;
                }

                if (year >= 15 && year <= 100)
                {
                    valid = true;
                }
                else
                {
                    valid = false;
                    MessageBox.Show("Ingresar una fecha de nacimiento válida. Tener al menos 15 años de edad", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    pwdRegisterTxt.Text = "Contraseña";
                    pwdRegisterTxt.UseSystemPasswordChar = false;
                    pwdRegisterTxt.ForeColor             = SystemColors.InactiveCaption;
                    return;
                }
            }
            else
            {
                MessageBox.Show("Rellenar todos los campos", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                valid = false;
            }

            if (valid)
            {
                string gender;
                if (womanRegisterRadioBtn.Checked)
                {
                    gender = "Mujer";
                }
                else
                {
                    gender = "Hombre";
                }

                bool existing = proxy.CheckExistingUser(emailRegisterTxt.Text);

                if (!existing)
                {
                    int res = proxy.Register(nameRegisterTxt.Text, lastNameRegisterTxt.Text, emailRegisterTxt.Text, pwdRegisterTxt.Text, gender, birthdayRegisterTxt.Value);

                    if (res != 0)
                    {
                        user = proxy.GetUserById(res);
                    }
                    else
                    {
                        MessageBox.Show("Ocurrió un error.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    user.friends = proxy.GetFriends(user.ID);

                    this.Hide();
                    Form next = new ChooseProfilePicture();
                    next.ShowDialog();
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Correo electrónico ya utilizado.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    emailRegisterTxt.Text                = "Correo electrónico";
                    emailRegisterTxt.ForeColor           = SystemColors.InactiveCaption;
                    pwdRegisterTxt.Text                  = "Contraseña";
                    pwdRegisterTxt.UseSystemPasswordChar = false;
                    pwdRegisterTxt.ForeColor             = SystemColors.InactiveCaption;
                }
            }
        }