// Implements Registration of user informations (suivent) / modifying registered user informations (modifier) private async void NextModifyBtn_Click(object sender, EventArgs e) { /* Perform add user registration to db */ // Get user data to a model Adherent newAdh = new Adherent { Nom = NameTB.Text, Prenom = PrenomTB.Text, Sexe = SexeCB.SelectedItem.ToString(), Cin = CinTB.Text, Tel = TelTB.Text, TelUrgence = TelUrgenceTB.Text, Adresse = AdresseTB.Text, Ville = VilleTB.Text, CNE = (CneTB.Text != "CNE Pour Bénificier d'une réduction étudiant") ? CneTB.Text : null }; // Instanciating validators RegistrationValidator validator = new RegistrationValidator(); ValidationResult results = await validator.ValidateAsync(newAdh); // User input data is not valid if (!results.IsValid) { // Display Errors to user foreach (ValidationFailure failure in results.Errors) { UserErrors.Add(failure.ErrorMessage); } MetroFramework.MetroMessageBox.Show(this, string.Join("\n", UserErrors), "Données Non Valides", MessageBoxButtons.OK, MessageBoxIcon.Error); // Clear errors for another use and quit UserErrors.Clear(); return; } // All is valid let's attach adherent informations to the user using (ClubDbContext _context = new ClubDbContext()) { var userInDb = await _context.Users.FirstOrDefaultAsync(u => u.Id == currentUser.Id); if (userInDb != null) { userInDb.Adherent = newAdh; } await _context.SaveChangesAsync(); userInDb.AdherentId = userInDb.Adherent.CodeAdh; await _context.SaveChangesAsync(); } // call the event to quit this shit OnSetRegistration(); }
// Implements Registration of user informations (suivent) / modifying registered user informations (modifier) private async void NextModifyBtn_Click(object sender, EventArgs e) { if (ModifyBtn.Text.Equals("Modifier")) { // Enable form to user formEnabled(true); // Change UI formColors(Color.WhiteSmoke); // Change button text ModifyBtn.Text = "Sauvegarder"; } else if (ModifyBtn.Text.Equals("Sauvegarder")) { /* Perform Modify Logic */ // Get current Adherent currentAdherent = adherentBindingSource.Current as Adherent; // Instanciating validators RegistrationValidator validator = new RegistrationValidator(); ValidationResult results = await validator.ValidateAsync(currentAdherent); // User input data is not valid if (!results.IsValid) { // Display Errors to user foreach (ValidationFailure failure in results.Errors) { UserErrors.Add(failure.ErrorMessage); } MetroFramework.MetroMessageBox.Show(this, string.Join("\n", UserErrors), "Données Non Valides", MessageBoxButtons.OK, MessageBoxIcon.Error); // Clear errors for another use and quit UserErrors.Clear(); return; } // Get adherent from database using (ClubDbContext context = new ClubDbContext()) { var adherentInDB = context.Adherents .SingleOrDefault(a => a.CodeAdh == currentAdherent.CodeAdh); adherentInDB.Nom = currentAdherent.Nom; adherentInDB.Prenom = currentAdherent.Prenom; adherentInDB.Sexe = currentAdherent.Sexe; adherentInDB.Cin = currentAdherent.Cin; adherentInDB.Tel = currentAdherent.Tel; adherentInDB.TelUrgence = currentAdherent.TelUrgence; adherentInDB.Adresse = currentAdherent.Adresse; adherentInDB.Ville = currentAdherent.Ville; adherentInDB.CNE = currentAdherent.CNE; await context.SaveChangesAsync(); } // Refresh dataGrid Profile_Load(sender, e); // Disable form to user formEnabled(false); // Change Ui formColors(Color.FromArgb(172, 126, 241)); // Change button text ModifyBtn.Text = "Modifier"; } }
// Add New Adherent to db private async void NextModifyBtn_Click(object sender, EventArgs e) { if (AjouterBtn.Text.Equals("Ajouter")) { #region UI Logic // Enable form to user formEnabled(true); // Change UI formColors(Color.WhiteSmoke); // default text formTbInitializeText(); // Change button text AjouterBtn.Text = "Sauvegarder"; // Disable other buttons ModifierBtn.Enabled = false; SupprimerBtn.Enabled = false; AffecterSeanceBtn.Enabled = false; #endregion adherentBindingSource.Add(new Adherent()); adherentBindingSource.MoveLast(); } else if (AjouterBtn.Text.Equals("Sauvegarder")) { /* Perform Add Logic */ // get user input Adherent newAdh = adherentBindingSource.Current as Adherent; // Instanciating validators RegistrationValidator validator = new RegistrationValidator(); ValidationResult results = await validator.ValidateAsync(newAdh); // User input data is not valid if (!results.IsValid) { // Display Errors to user foreach (ValidationFailure failure in results.Errors) { UserErrors.Add(failure.ErrorMessage); } MetroFramework.MetroMessageBox.Show(this, string.Join("\n", UserErrors), "Données Non Valides", MessageBoxButtons.OK, MessageBoxIcon.Error); // Clear errors for another use and quit UserErrors.Clear(); return; } // Create new User logins var newUser = new User { Email = newAdh.Nom + newAdh.Prenom + "@mail.com", Password = Crypto.HashPassword("Client123"), Role = User.NonPayedClient, }; // All is valid let's attach adherent informations to the user using (ClubDbContext _context = new ClubDbContext()) { _context.Users.Add(newUser); await _context.SaveChangesAsync(); var userInDb = _context.Users.SingleOrDefault(u => u.Email.Equals(newUser.Email)); userInDb.Adherent = newAdh; await _context.SaveChangesAsync(); userInDb.AdherentId = userInDb.Adherent.CodeAdh; await _context.SaveChangesAsync(); } // refresh the datagrid adherents_Load(sender, e); // show added message to display logins MetroFramework.MetroMessageBox.Show(this, "Le client " + newAdh.Nom + " " + newAdh.Prenom + " a été crée avec succés.\n" + "Ses logins générés automatiquement sont: \n" + "Login:\t" + newUser.Email + "\n" + "Password:\t" + "Client123 \n", "Client Ajouté avec succés", MessageBoxButtons.OK, MessageBoxIcon.Information); #region UI Logic // Disable form to user formEnabled(false); // Change Ui formColors(Color.FromArgb(249, 116, 176)); // Change button text AjouterBtn.Text = "Ajouter"; // Disable other buttons ModifierBtn.Enabled = true; SupprimerBtn.Enabled = true; AffecterSeanceBtn.Enabled = true; #endregion } }