// GET: Edit public async Task<ActionResult> Edit(SystemMessage? Message) { ViewBag.StatusMessage = new ViewSystemMessage(Message); var userId = User.Identity.GetUserId(); var user = await UserManager.FindByIdAsync(userId); AccountInfoVm modelVm = new AccountInfoVm() { Username = user.UserName , FullName = user.Claims.Where(x => x.ClaimType == "FullName").Select(x => x.ClaimValue).FirstOrDefault() , Email = user.Email , PhoneNumber = user.PhoneNumber , Sex = user.Claims.Where(x => x.ClaimType == ClaimTypes.Gender).Select(x => x.ClaimValue).FirstOrDefault() }; DateTime BirthDate; if (DateTime.TryParse(user.Claims.Where(x => x.ClaimType == ClaimTypes.DateOfBirth).Select(x => x.ClaimValue).SingleOrDefault(), out BirthDate)) { modelVm.BirthDate = BirthDate; } return View("Edit", modelVm); }
public async Task<ActionResult> Edit(AccountInfoVm Model) { if (ModelState.IsValid) { var userId = User.Identity.GetUserId(); var user = await UserManager.FindByIdAsync(userId); user.UserName = Model.Username; user.Email = Model.Email; user.PhoneNumber = Model.PhoneNumber; if (Model.FullName != null) { IdentityUserClaim FullNameClaim = user.Claims.Where(x => x.ClaimType == "FullName").FirstOrDefault(); if (FullNameClaim != null) { FullNameClaim.ClaimValue = Model.FullName; } else { FullNameClaim = new IdentityUserClaim() { ClaimType = "FullName", ClaimValue = Model.FullName }; } user.Claims.Add(FullNameClaim); } if (Model.Sex != null) { IdentityUserClaim GenderClaim = user.Claims.Where(x => x.ClaimType == ClaimTypes.Gender).FirstOrDefault(); if (GenderClaim != null) { GenderClaim.ClaimValue = Model.Sex; } else { GenderClaim = new IdentityUserClaim() { ClaimType = ClaimTypes.Gender, ClaimValue = Model.Sex }; } user.Claims.Add(GenderClaim); } if (Model.BirthDate.HasValue) { IdentityUserClaim BirthDateClaim = user.Claims.Where(x => x.ClaimType == ClaimTypes.DateOfBirth).FirstOrDefault(); if (BirthDateClaim != null) { BirthDateClaim.ClaimValue = Model.BirthDate.Value.ToString(@"dd\/MM\/yyyy"); } else { BirthDateClaim = new IdentityUserClaim() { ClaimType = ClaimTypes.DateOfBirth, ClaimValue = Model.BirthDate.Value.ToString(@"dd\/MM\/yyyy") }; } user.Claims.Add(BirthDateClaim); } await UserManager.UpdateAsync(user); return RedirectToAction("Edit",new { Message = SystemMessage.SaveAccountInfoSuccess}); } else { ViewBag.StatusMessage = new ViewSystemMessage(SystemMessage.Error); return View("Edit", Model); } }