public async Task<ActionResult> UserEdit(EditUserViewModel model) { if (ModelState.IsValid) { var Db = new ApplicationDbContext(); var user = Db.Users.First(u => u.Id == model.UserId); if (user != null) { user.UserName = model.UserName; user.FirstName = model.FirstName; user.LastName = model.LastName; user.Email = model.Email; user.Role = model.Role; user.BvLocation = Db.BvLocations.Find(model.BvLocationId); var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext())); if (rm.RoleExists("Admin") && rm.RoleExists("User")) { var idManager = new IdentityManager(); if (user.Role == "Admin") { idManager.AddUserToRole(user.Id, "Admin"); } if (user.Role == "User") { idManager.AddUserToRole(user.Id, "User"); } } Db.Entry(user).State = System.Data.Entity.EntityState.Modified; await Db.SaveChangesAsync(); } return RedirectToAction("UserIndex"); } // If we got this far, something failed, redisplay form return View(model); }
public async Task<ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser() { UserName = model.UserName, FirstName = model.FirstName, LastName = model.LastName, Email = model.Email, PhoneNumber = model.PhoneNumber, Role = model.Role }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await SignInAsync(user, isPersistent: false); TempData["message"] = string.Format("{0} has been registered.", user.UserName); var Db = new ApplicationDbContext(); var user2 = Db.Users.First(u => u.UserName == user.UserName); user2.BvLocation = Db.BvLocations.Find(model.BvLocationId); Db.Entry(user2).State = System.Data.Entity.EntityState.Modified; await Db.SaveChangesAsync(); var rm = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext())); if (rm.RoleExists("Admin") && rm.RoleExists("User")) { var idManager = new IdentityManager(); if (user.Role == "Admin") { idManager.AddUserToRole(user.Id, "Admin"); } if (user.Role == "User") { idManager.AddUserToRole(user.Id, "User"); } } return RedirectToAction("UserIndex", "CRUD"); } else { AddErrors(result); } } // If we got this far, something failed, redisplay form return View(model); }