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