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));
        }
Ejemplo n.º 2
0
        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));
        }