コード例 #1
0
        public async Task <bool> UpdateUserAsync(AdminUpdateUserCommand command)
        {
            var user = await _userManager.FindByNameAsync(command.Username);

            _userFactory.UpdateInfo(command, user);

            var claims = await _userManager.GetClaimsAsync(user);

            if (command.Name.IsPresent())
            {
                await AddOrUpdateClaim(claims, user, JwtClaimTypes.GivenName, command.Name);
            }

            if (command.Birthdate.HasValue)
            {
                await AddOrUpdateClaim(claims, user, JwtClaimTypes.BirthDate, command.Birthdate.Value.ToString(CultureInfo.CurrentCulture));
            }

            if (command.SocialNumber.IsPresent())
            {
                await AddOrUpdateClaim(claims, user, "social_number", command.SocialNumber);
            }

            var resut = await _userManager.UpdateAsync(user);

            if (!resut.Succeeded)
            {
                foreach (var error in resut.Errors)
                {
                    await _bus.RaiseEvent(new DomainNotification("User", error.Description));
                }

                return(false);
            }

            return(true);
        }