Ejemplo n.º 1
0
        public async Task <ServiceResult> UpdateUserAccount(Guid userId, DTOs.UpdateAccount account)
        {
            ServiceResult result = new ServiceResult();
            PassportUser  user   = await userManager.FindByIdAsync(userId.ToString());

            if (user == null)
            {
                result.Errors.Add(new ServiceResult.Error
                {
                    Key     = nameof(Errors.UserNotFound),
                    Message = Errors.UserNotFound,
                });
                result.Code = 404;

                return(result);
            }

            if (!user.Email.Equals(account.Email, StringComparison.InvariantCultureIgnoreCase))
            {
                user.EmailConfirmed = false;
            }

            user.Update(account.Email, account.UserName);
            IdentityResult updateResult = await userManager.UpdateAsync(user);

            if (!updateResult.Succeeded)
            {
                result.Errors.Add(new ServiceResult.Error
                {
                    Key     = nameof(Errors.UpdateFailed),
                    Message = Errors.UpdateFailed,
                });

                foreach (IdentityError error in updateResult.Errors)
                {
                    result.Errors.Add(new ServiceResult.Error
                    {
                        Key     = error.Code,
                        Message = error.Description,
                    });
                }

                result.Code = 400;
            }

            return(result);
        }
Ejemplo n.º 2
0
        public async Task <OperationResult> UpdateUserAccount([FromRoute] Guid accountId, [FromBody] DTOs.UpdateAccount payload)
        {
            var result = await this.passportService.UpdateUserAccount(accountId, payload);

            if (result.Successful)
            {
                return(Ok());
            }
            return(BadRequest());
        }