public async Task <IActionResult> AddUser([FromBody] RegisterViewModel model) { try { if (ModelState.IsValid) { var user = await userManager.FindByEmailAsync(model.Username); if (user == null) { user = new LotteryGeniusUser() { UserName = model.Username, Email = model.Username, FirstName = model.FirstName, LastName = model.LastName }; var userResult = await userManager.CreateAsync(user, model.LastName + DateTime.Now.Year + "!"); if (userResult == IdentityResult.Success) { await userManager.AddToRoleAsync(user, model.Role); user.initialLogin = true; _ctx.SaveChanges(); var webRoot = this.env.WebRootPath; var pathToFile = this.env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "lottonewuser_email.html"; var builder = new BodyBuilder(); using (StreamReader SourceReader = System.IO.File.OpenText(pathToFile)) { builder.HtmlBody = SourceReader.ReadToEnd(); } string messageBody = builder.HtmlBody; messageBody = messageBody.Replace("{user}", $"{model.FirstName} {model.LastName}") .Replace("{username}", $"{model.Username}").Replace("{password}", $"{model.LastName + DateTime.Now.Year}!").Replace("{url}", $"{this.config["WebsiteOrigin"]}/Home/EmailVerification/?email={model.Username}"); await _emailSender.SendEmailAsync(user.Email, "Email Verification", messageBody); return(Ok()); } } } else { return(BadRequest(ModelState)); } } catch (Exception e) { Console.WriteLine(e); throw; } return(BadRequest("Failed to save user data")); }
public async Task Seed() { _ctx.Database.EnsureCreated(); string[] roles = { "Admin", "Viewer", "Editor" }; foreach (var role in roles) { var roleExist = await _roleManager.RoleExistsAsync(role); if (!roleExist) { await _roleManager.CreateAsync(new IdentityRole <int>(role)); } } ////Add Admin user var user = await _userManager.FindByEmailAsync("*****@*****.**"); if (user == null) { user = new LotteryGeniusUser() { UserName = "******", Email = "*****@*****.**", FirstName = "Anthony", LastName = "Wright" }; var result = await _userManager.CreateAsync(user, "War3agle!"); if (result != IdentityResult.Success) { throw new InvalidOperationException("Failed to create default user"); } else { await _userManager.AddToRoleAsync(user, "Admin"); } } //// End Add Admin User }