public async Task <ActionResult> Register([FromBody] RegisterViewModel model) { var email = $"{model.Email}@lgs.com"; var user = new ApplicationUser { UserName = email, Email = email, Nom = model.Nom, Prenom = model.Prenom }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { ApplicationRole role = _roleManager.FindByNameAsync("Conseiller").Result; await _userManager.AddToRoleAsync(user, role.Name); _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = System.Net.WebUtility.UrlEncode(code); var callbackUrl = $"{_configuration["FrontendBaseUrl"]}/account/confirmemail?userId={user.Id}&code={code}"; await _emailSender.SendEmailConfirmationAsync(email, callbackUrl); await _signInManager.SignInAsync(user, isPersistent : false); _logger.LogInformation("User created a new account with password."); var utilisateurGraphRepository = new UtilisateurGraphRepository(); var utilisateur = new Utilisateur() { Prenom = user.Prenom, Nom = user.Nom, AdresseCourriel = user.Email }; var savedUserModel = utilisateurGraphRepository.CreateIfNotExists(utilisateur); return(Json(savedUserModel)); } else { ErrorViewModel error = new ErrorViewModel(); error.RequestId = "Le rôle n'a pas pu être modifié"; return(Json(error)); } }
protected override void Up(MigrationBuilder migrationBuilder) { PasswordHasher <Models.Admin.ApplicationUser> hasher = new PasswordHasher <Models.Admin.ApplicationUser>(); migrationBuilder.InsertData("AspNetUsers", new string[] { "Id", "AccessFailedCount", "ConcurrencyStamp", "Email", "EmailConfirmed", "LockoutEnabled", "LockoutEnd", "NormalizedEmail", "NormalizedUserName", "PasswordHash", "PhoneNumber", "PhoneNumberConfirmed", "SecurityStamp", "TwoFactorEnabled", "UserName" }, new object[] { AdminUserId, //Id 0, //AccesFailes Guid.NewGuid().ToString(), //Concurrency "*****@*****.**", //Email 1, //ConfirmedEmail 1, //Lockout enable null, //Lockout end: "*****@*****.**", "*****@*****.**", hasher.HashPassword(new Models.Admin.ApplicationUser(), "Bonjour01#"), "", "", Guid.NewGuid().ToString(), 0, "*****@*****.**" }, "dbo"); migrationBuilder.InsertData("AspNetRoles", new string[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" }, new object[] { AdminRoleId, Guid.NewGuid().ToString(), "Administrateur", "ADMINISTRATEUR" }, "dbo"); migrationBuilder.InsertData("AspNetUserRoles", new string[] { "UserId", "RoleId" }, new object[] { AdminUserId, AdminRoleId }, "dbo"); migrationBuilder.InsertData("AspNetRoles", new string[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" }, new object[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "Conseiller", "CONSEILLER" }, "dbo"); migrationBuilder.InsertData("AspNetRoles", new string[] { "Id", "ConcurrencyStamp", "Name", "NormalizedName" }, new object[] { Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "Approbateur", "APPROBATEUR" }, "dbo"); var utilisateurGraphRepository = new UtilisateurGraphRepository(); var utilisateur = new Utilisateur() { Prenom = "Admin", AdresseCourriel = "*****@*****.**" }; utilisateurGraphRepository.CreateIfNotExists(utilisateur); }