public async Task <bool> UpdateEmail(UserUpdateEmailModel model) { var exists = await _repositoryUser.Any(x => x.Email == model.Email && x.State == MREntityState.Active); if (exists) { throw new MRException <object>((int)ExceptionCode.SYSTEM_EXCEPTION, "Email already in use"); } var currentUser = await _repositoryUser.Get(_userId); if (!await _managerUser.CheckPasswordAsync(currentUser, model.Password)) { throw new MRException <object>((int)ExceptionCode.ACCESS_DENIED, "Wrong password"); } var entity = new EmailChangeUnit { NewEmail = model.Email, OldEmail = _userEmail, Status = Infrastructure.Entity.Enum.EmailChangeResult.NEW, Expired = DateTime.UtcNow.AddDays(3), Token = KeyGenerator.GenerateAccessKey(8), UserId = _userId, }; await _repositoryEmailChangeUnit.Insert(entity); return(true); }
public async Task <IActionResult> UpdateEmail([FromBody] UserUpdateEmailModel model) { if (!ModelState.IsValid) { return(BadRequest()); } return(Json(await _managerUserControl.UpdateEmail(model))); }