public async Task <IActionResult> Edit(ShortUserInfoViewModel userInfo) { if (!ModelState.IsValid) { return(View(userInfo)); } var user = await _userManager.GetUserAsync(User); user.FirstName = userInfo.FirstName; user.LastName = userInfo.LastName; user.Email = userInfo.Email; user.BirthDate = userInfo.BirthDate; var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { await _userManager.RemoveClaimAsync(user, User.FindFirst(ClaimTypes.DateOfBirth)); await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.DateOfBirth, user.BirthDate.Year.ToString())); return(RedirectToAction("Index")); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } return(View(userInfo)); }
public ActionResult UserInformation() { string userId = User.Identity.GetUserId(); var user = _userService.FindUserById(userId); var userInfo = new ShortUserInfoViewModel() { Id = userId, FirstName = user.FirstName, LastName = user.LastName, DateRegistration = (DateTime)user.RegistrationdDate, Image = user.Image }; var feedBacks = user.RecivedFeedBacks?.ToList(); int countFeedBacks = feedBacks != null?feedBacks.Count() : 0; int countFeedbacksForPer = countFeedBacks == 0 ? 1 : feedBacks.Count(); double percentPositiveFeedBacks = (double)feedBacks.Count(p => (int)p.QualityOfWork >= 3) * 100 / countFeedbacksForPer; userInfo.CountFeedbacks = countFeedBacks; userInfo.PercentPositiveFeedbacks = (int)Math.Round(percentPositiveFeedBacks); return(PartialView(userInfo)); }
public async Task <IActionResult> Edit(string userName) { var user = await _userManager.FindByNameAsync(userName); ShortUserInfoViewModel userInfo = new ShortUserInfoViewModel { FirstName = user.FirstName, LastName = user.LastName, Email = user.Email, UserName = user.UserName, BirthDate = user.BirthDate }; return(View(userInfo)); }