public async Task <IResponse <ViewModels.ValidateOtp> > ValidateOtp(ViewModels.ValidateOtp view) { try { logger.Info($"{ GetType().Name} { ExtensionUtility.GetCurrentMethod() } input : {view.ToJsonString()} UserIPAddress: { _userIPAddress.GetUserIP().Result }"); var userInfo = await _appDbContext.UserInfos.FirstOrDefaultAsync ( x => x.UserId == view.UserId && x.OTP == view.Otp); if (userInfo == null) { return(new OTPResponce(new ViewModels.ValidateOtp { Success = false, CustomStatusCode = CustomStatusCode.OTPExpiredOrInvalid, Message = ClientMessageConstant.OTPExpiredOrInvalid })); } //userInfo.TokenIsCompleted = true; userInfo.IsActive = true; userInfo.CanLogin = true; userInfo.Modified = DateTime.Now; _appDbContext.UserInfos.Update(userInfo); await _appDbContext.SaveChangesAsync(); return(new OTPResponce(new ViewModels.ValidateOtp { UserId = view.UserId, Otp = view.Otp, Success = true, CustomStatusCode = CustomStatusCode.Success, Message = ClientMessageConstant.Success })); } catch (System.Exception ex) { //Message = $"An error occurred when resetting password: {ex.Message}"; return(new OTPResponce(new ViewModels.ValidateOtp { UserId = view.UserId, Otp = view.Otp, Success = false, CustomStatusCode = CustomStatusCode.FunctionalError, Message = ClientMessageConstant.WeAreUnableToProcessYourRequest })); } }