public ActionResult Register(RegisterViewModel model) { if (ModelState.IsValid) { Location location = db.Locations.Single(x => x.Name.Equals(model.Location)); var user = new AutoMedUser { UserName = model.UserName, LocationId = location.Id, IsDeleted = false }; IdentityResult result = UserManager.Create(user, model.Password); if (model.Role == "Administrator") { UserManager.AddToRole(user.Id, "Administrator"); } else if (model.Role == "Manager") { UserManager.AddToRole(user.Id, "Manager"); } else if (model.Role == "Employee") { UserManager.AddToRole(user.Id, "Employee"); } if (result.Succeeded) { return(RedirectToAction(nameof(Index))); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult Edit(string id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } List <SelectListItem> locationList = new List <SelectListItem>(); db.Locations.ToList().ForEach( location => locationList.Add(new SelectListItem { Text = location.Name, Value = location.Id.ToString() }) ); ViewBag.locationList = locationList; List <SelectListItem> rolesList = new List <SelectListItem>(); db.Roles.ToList().ForEach( role => rolesList.Add(new SelectListItem { Text = role.Name, Value = role.Id.ToString() }) ); ViewBag.rolesList = rolesList; AutoMedUser user = UserManager.FindById(id); EditViewModel viewModel = new EditViewModel { UserName = user.UserName, LocationId = user.LocationId, Id = user.Id, Role = user.Roles.First().RoleId }; return(View(viewModel)); }
public ActionResult DeleteConfirmed(string id) { AutoMedUser deletion = UserManager.FindById(id); deletion.IsDeleted = true; UserManager.Update(deletion); return(RedirectToAction(nameof(Index))); }
public ActionResult Edit(EditViewModel model) { if (ModelState.IsValid) { RoleManager <IdentityRole> roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(db)); AutoMedUser userToEdit = UserManager.FindById(model.Id); userToEdit.UserName = model.UserName; userToEdit.LocationId = model.LocationId; UserManager.RemoveFromRole(model.Id, roleManager.FindById(userToEdit.Roles.First().RoleId).Name); UserManager.AddToRole(model.Id, roleManager.FindById(model.Role).Name); UserManager.Update(userToEdit); return(RedirectToAction(nameof(Index))); } return(View(model)); }
public ActionResult Create([Bind(Include = "CustomerId,VehicleId,CurrentNumberInHousehold,MandatoryCost,EligibleCost,Income,Expenses,WorkDescription")] Quote quote, List <HttpPostedFileBase> files) { if (ModelState.IsValid) { AutoMedUser loggedIn = db.Users.Where(x => x.UserName.Equals(User.Identity.Name)).Include("Location").First(); quote.Documents = new List <Document>(); for (int i = 0; i < files.Count; i++) { if (i != files.Count - 1) { quote.Documents.Add(new Document() { UploadedImage = files[i] }); } } quote.DateCreated = DateTime.Now; quote.LocationId = loggedIn.Location.Id; quote.CreatedById = loggedIn.Id; quote.Location = db.Locations.Find(quote.LocationId); SetDiscount(quote); string redir; if (User.IsInRole("Administrator") || User.IsInRole("Manager")) { quote.Approval = QuoteStatus.Accepted; quote.DateReviewed = quote.DateCreated; redir = nameof(Edit); } else { quote.Approval = QuoteStatus.Pending; quote.DateReviewed = null; redir = nameof(Details); } db.Quotes.Add(quote); db.SaveChanges(); UploadDocumentBlobs(quote.Documents); return(RedirectToAction(redir, new { id = quote.Id })); } return(View(quote)); }
public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return(View(model)); } // This doesn't count login failures towards account lockout // To enable password failures to trigger account lockout, change to shouldLockout: true var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout : false); switch (result) { case SignInStatus.Success: AutoMedUser user = db.Users.First(u => u.UserName == model.UserName); IdentityRole role = db.Roles.Find(user.Roles.First().RoleId); if (role.Name == "Administrator") { return(RedirectToAction("Create", "Report", routeValues: null)); } else if (role.Name == "Manager") { return(RedirectToAction("Index", "Quotes", routeValues: null)); } else { return(RedirectToAction("Index", "Customers")); } case SignInStatus.LockedOut: return(RedirectToAction(nameof(Login))); default: ModelState.AddModelError("", "Invalid login attempt."); return(View(model)); } }
public JsonResult DoesUserNameExist(string userName) { AutoMedUser user = db.Users.FirstOrDefault(x => x.UserName == userName); return(Json(user == null)); }