public async Task <IAccountResponse> ForgotPass(ForgotPassword view) { try { logger.Info($"{ GetType().Name} { ExtensionUtility.GetCurrentMethod() } input : {view.ToJsonString()} UserIPAddress: { _userIPAddress.GetUserIP().Result }"); var userInfo = await _appDbContext.UserInfos.Include(k => k.User).FirstOrDefaultAsync(x => x.Email == view.Email); ViewModels.ValidateOtp validateOtp = new ViewModels.ValidateOtp(); if (userInfo == null) { return(new AccountResponse(new ViewModels.UserRegistration { Success = false, CustomStatusCode = CustomStatusCode.NotRegisteredEmailID, Message = ClientMessageConstant.NotRegisteredEmailId })); } else { var profileInfo = await _appDbContext.Profiles.FirstOrDefaultAsync(x => x.Id == userInfo.Id); var userName = view.LanguageType == LanguageType.EN ? userInfo.User.NameEn : userInfo.User.NameAr; var emailResult = await _emailService.SendResetPasswordEmailAsync(userInfo.Email, userName, view.LanguageType); validateOtp.UserId = userInfo.UserId; validateOtp.Otp = userInfo.OTP; userInfo.OTP = emailResult.OTP; userInfo.Modified = DateTime.Now; _appDbContext.UserInfos.Update(userInfo); await _appDbContext.SaveChangesAsync(); return(new AccountResponse(new ViewModels.UserRegistration { Id = userInfo.UserId, FirstName = profileInfo.FirstNameEn, LastName = profileInfo.LastNameEn, Success = true, CustomStatusCode = CustomStatusCode.Success, Message = ClientMessageConstant.Success })); } } catch (System.Exception ex) { //Message = $"An error occurred when resetting password: {ex.Message}"; return(new AccountResponse(new ViewModels.UserRegistration { Success = false, CustomStatusCode = CustomStatusCode.FunctionalError, Message = ClientMessageConstant.WeAreUnableToProcessYourRequest }, ex)); } }