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