public IActionResult ConfirmOTP([FromBody] ConfirmOTPInputModel request) { if (!ModelState.IsValid) { return(BadRequest()); } return(Ok(_userService.ConfirmOTP(request))); }
/// <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)); } }