示例#1
0
        // 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();
        }
示例#2
0
        // 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";
            }
        }
示例#3
0
        // 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
            }
        }