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)));
        }