Exemple #1
0
        public IActionResult ConfirmOTP([FromBody] ConfirmOTPInputModel request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            return(Ok(_userService.ConfirmOTP(request)));
        }
Exemple #2
0
        /// <summary>
        /// Confirmation OTP Code
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ResponseViewModel ConfirmOTP(ConfirmOTPInputModel model)
        {
            var currentUser = new AppUser().Empty;

            if (string.IsNullOrEmpty(model.Platform))
            {
                return(NotFound(ResponseMessageViewModel.INVALID_PLATFORM, ResponseErrorCodeStatus.INVALID_PLATFORM));
            }

            var platform = _otpService.GetPlatformByIts(Res.ZERO, model.Platform);

            if (platform == null)
            {
                return(NotFound(ResponseMessageViewModel.INVALID_PLATFORM, ResponseErrorCodeStatus.INVALID_PLATFORM));
            }

            if ((model.Platform ?? Res.MOBILE_PLATFORM).ToLower() == Res.MOBILE_PLATFORM || (model.Platform.ToLower() == Res.WEB_PLATFORM))
            {
                currentUser = _userManager.FindByEmailAsync(model.EmailAddress).Result;

                if (currentUser == null)
                {
                    return(Failed(ResponseMessageViewModel.INVALID_EMAIL_ADDRESS).AddStatusCode(ResponseErrorCodeStatus.INVALID_EMAIL_ADDRESS));
                }
            }

            try
            {
                currentUser = _userManager.FindByEmailAsync(model.EmailAddress).Result;

                _otpAppService.ValidateOTP(currentUser.Id, model.Code, model.Platform);

                currentUser.EmailConfirmed = true;

                _ = _userManager.UpdateAsync(currentUser).Result;

                return(Ok(ResponseMessageViewModel.EMAIL_ADDRESS_CONFIRMED));
            }
            catch (InvalidTokenCodeExcepton e)
            {
                return(Failed(e.Message, ResponseErrorCodeStatus.INVALID_CONFIRMATION_CODE));
            }
            catch (ExpiredTokenCodeException e)
            {
                return(Failed(e.Message, ResponseErrorCodeStatus.EXPIRED_CONFIRMATION_CODE));
            }
        }