public async Task <IActionResult> Register()
        {
            ViewBag.Message     = TempData["Message"];
            TempData["Message"] = "";
            var model = new SecretaryRegistrationViewModel();

            return(View(model));
        }
        public async Task <IActionResult> Register(SecretaryRegistrationViewModel model)
        {
            var optionsBuilder = new DbContextOptionsBuilder <AppDbContext>();
            var unitOfWork     = new UnitOfWork(new AppDbContext(optionsBuilder.Options));

            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    FirstName    = model.FirstName,
                    LastName     = model.FirstName,
                    Email        = model.Email,
                    PhoneNumber  = model.PhoneNumber,
                    UserName     = model.Email,
                    SerialNumber = model.SerialNumber
                };

                var result = await userManager.CreateAsync(user, "Fantabamba25?!1_");

                if (!result.Succeeded)
                {
                    ViewBag.Error = $"Une erreur est survenue durant l'inscription de l'enseignant {model.FirstName} {model.LastName}!";
                    return(View(model));
                }

                if ((await roleManager.RoleExistsAsync("Secretary")) == false)
                {
                    var role = new IdentityRole();
                    role.Name = "Secretary";
                    var result1 = await roleManager.CreateAsync(role);

                    if (!result1.Succeeded)
                    {
                        ViewBag.Error = $"Une erreur est survenue durant la creation du role secrétaire!";
                        return(View(model));
                    }
                }

                var result2 = await userManager.AddToRoleAsync(user, "Secretary");

                if (!result2.Succeeded)
                {
                    ViewBag.Error = $"Impossible d'ajouter l'utilisateur {user.FirstName} {user.LastName} au role Secrétaire";
                    return(View(model));
                }
            }
            else
            {
                return(View(model));
            }
            ViewBag.Message = $"Secretaire enregistrer avec succès!";
            return(View(model));
        }