public async Task <ActionResult> Edit(UserModel userModel, string returnUrl) { if (!ModelState.IsValid) { return(View(userModel)); } var pointAddress = userModel.Country + ", " + userModel.City + ", " + userModel.Address; userModel.Location = Geolocalization.GetPoint(pointAddress); if (!User.IsInRole(AppRoles.Administrator)) { userModel.Email = User.Identity.GetUserName(); } if (!CanViewOrEdit(User.Identity.GetUserId(), userModel)) { return(new HttpStatusCodeResult(HttpStatusCode.Conflict)); } Db.Entry(userModel).State = EntityState.Modified; await Db.SaveChangesAsync(); if (!string.IsNullOrWhiteSpace(returnUrl)) { return(Redirect(returnUrl)); } return(RedirectToAction("Index")); }
public async Task <ActionResult> Create(UserModel userModel, bool isAdultCheck, bool?termsAndConditions) { if (!User.IsInRole(AppRoles.Administrator)) { userModel.Email = User.Identity.GetUserName(); userModel.UserId = User.Identity.GetUserId(); } ValidateUserModel(userModel, isAdultCheck, termsAndConditions); ViewBag.IsAdultCheck = isAdultCheck; ViewBag.TermsAndConditions = termsAndConditions; if (!ModelState.IsValid) { return(View("Create", userModel)); } var pointAddress = userModel.Country + ", " + userModel.City + ", " + userModel.Address; userModel.Location = Geolocalization.GetPoint(pointAddress); if (userModel.Id == 0) { //CREATE var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(Db)); await userManager.RemoveFromRoleAsync(userModel.UserId, AppRoles.Unassigned); await userManager.AddToRoleAsync(userModel.UserId, AppRoles.Requester); Db.UserModelsT.Add(userModel); await Db.SaveChangesAsync(); return(RedirectToAction("Index")); } if (!userModel.CanViewOrEdit(User)) { return(new HttpStatusCodeResult(HttpStatusCode.Conflict)); } //EDIT Db.Entry(userModel).State = EntityState.Modified; await Db.SaveChangesAsync(); return(RedirectToAction("Index", "Manage")); }