public ActionResult ShowUserEdit(string id) { if (id == null) //Id is null, return bad request { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var user = _context.Users.Find(id); //get the requested user if (user == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var changeProfileModel = new changeProfileModel { Fname = user.Fname, Lname = user.Lname, City = user.Adress.City, StreetAdress = user.Adress.StreetAdress, PostCode = user.Adress.PostCode, State = user.Adress.County, Phone = user.Phone, Id = user.Id, BirthNumber = user.BirthNumber }; return(PartialView("_EditProfilePartial", changeProfileModel)); }
public async Task <ActionResult> EditUser(changeProfileModel model) { if (ModelState.IsValid) { var userId = User.Identity.GetUserId(); if (userId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var store = new UserStore <ApplicationUser>(_context); var manager = new UserManager <ApplicationUser>(store); var user = manager.FindById(userId); //the current user //so far so good, change the details of the user user.Fname = model.Fname; user.Lname = model.Lname; user.Phone = model.Phone; user.BirthNumber = model.BirthNumber; var newAdress = new DbTables.Adresses { City = model.City, StreetAdress = model.StreetAdress, County = model.State, PostCode = model.PostCode }; var adress = AdressExist(newAdress); if (adress == null) { user.Adress = newAdress; adress = newAdress; _context.Adresses.Add(newAdress); _context.SaveChanges(); } else if (user.Adress == adress) { //do nothing } else { user.Adress = adress; } var result = await manager.UpdateAsync(user); //update the user in the databse store.Context.SaveChanges(); if (result.Succeeded) //if update succeeds { if (Request.IsAjaxRequest()) //it succeeds, show success status message { ViewBag.Success = "Profilinformasjon oppdatert."; var ProfileModel = new changeProfileModel { Id = user.Id, Fname = user.Fname, Lname = user.Lname, Phone = user.Phone, City = adress.City, State = adress.County, StreetAdress = adress.StreetAdress, PostCode = adress.PostCode, BirthNumber = user.BirthNumber }; return(PartialView("_UserInfoPartial", ProfileModel)); } } else { var ProfileModel = new changeProfileModel { Id = user.Id, Fname = user.Fname, Lname = user.Lname, Phone = user.Phone, City = adress.City, State = adress.County, StreetAdress = adress.StreetAdress, PostCode = adress.PostCode }; ViewBag.Error = "Noe gikk galt."; return(PartialView("_UserInfoPartial", ProfileModel)); } } else { var user = _context.Users.Find(User.Identity.GetUserId()); var adress = _context.Adresses.Find(user.AdressId); var ProfileModel = new changeProfileModel { Id = user.Id, Fname = user.Fname, Lname = user.Lname, Phone = user.Phone, City = adress.City, State = adress.County, StreetAdress = adress.StreetAdress, PostCode = adress.PostCode }; var messages = string.Join("\n", ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage)); ViewBag.Error = "Ugyldige verdier: " + messages; return(PartialView("_UserInfoPartial", ProfileModel)); } return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); }