public IActionResult UpdateEmail(UpdateEmailDTO updateEmailDTO)
        {
            var apiJsonResponse = new ApiJsonResponse();

            try
            {
                using (FoodInfoServiceContext context = new FoodInfoServiceContext())
                {
                    if (context.User.Any(x => x.IsDeleted == false && x.Email == updateEmailDTO.oldEmail))
                    {
                        if (context.User.Any(x => x.IsDeleted == false && x.Email == updateEmailDTO.newEmail))
                        {
                            return(apiJsonResponse.ApiBadRequestWithMessage(PublicConstants.UserNameOrEmailAlreadyExistError));
                        }
                        else
                        {
                            var User = context.User.FirstOrDefault(x => x.IsDeleted == false && x.Email == updateEmailDTO.oldEmail);
                            User.Email        = updateEmailDTO.newEmail;
                            User.ModifiedDate = DateTime.Now;

                            context.SaveChanges();
                            return(apiJsonResponse.ApiOkContentResult(updateEmailDTO));
                        }
                    }
                    else
                    {
                        return(apiJsonResponse.ApiBadRequestWithMessage(PublicConstants.UserNotFoundError));
                    }
                }
            }
            catch
            { return(apiJsonResponse.ApiBadRequestWithMessage(PublicConstants.SysErrorMessage)); }
        }
Esempio n. 2
0
        public async Task <ActionResult <UserToken> > updateEmail([FromBody] UpdateEmailDTO emailDTO)
        {
            var email = HttpContext.User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value;;

            var user = await _userManager.FindByEmailAsync(email);

            if (user == null)
            {
                return(NotFound());
            }

            user.Email = emailDTO.Email;

            var result = await _userManager.UpdateAsync(user);

            if (!result.Succeeded)
            {
                return(BadRequest(result.Errors));
            }

            var loggedUser = await _userManager.FindByEmailAsync(emailDTO.Email);

            return(GenerateJwtToken(loggedUser.Email, loggedUser));
        }