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)); } }
public async Task <IAccountResponse> ForgotEmailID(ViewModels.ForgotEmail view) { try { logger.Info($"{ GetType().Name} { ExtensionUtility.GetCurrentMethod() } input : {view.ToJsonString()} UserIPAddress: { _userIPAddress.GetUserIP().Result }"); var profileInfo = await _appDbContext.Profiles.FirstOrDefaultAsync(x => x.Eid == view.EmirateID); ViewModels.ValidateOtp Votp = new ViewModels.ValidateOtp(); if (profileInfo == null) { return(new AccountResponse(new ViewModels.UserRegistration { Success = false, CustomStatusCode = CustomStatusCode.NotRegisteredEmiratesID, Message = ClientMessageConstant.NotRegisteredEmiratesId })); } else { var userInfo = await _appDbContext.UserInfos.FirstOrDefaultAsync(x => x.UserId == profileInfo.Id); //EMailProvider emailSet = new EMailProvider(_settings.SmtpUsername, _settings.SmtpPassword, _settings.SmtpHost, _settings.SmtpPort); //SendOtpEmail(emailSet, _settings.SmtpUsername, userInfo.Email, userInfo.otp); //Votp.UserId = userInfo.UserId; //Votp.Otp = userInfo.otp; //Message = _settings.Success; return(new AccountResponse(new ViewModels.UserRegistration { Id = userInfo.UserId, FirstName = profileInfo.FirstNameEn, LastName = profileInfo.LastNameEn, Email = userInfo.Email, //UserId = userInfo.UserId, //Otp = userInfo.otp, 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)); } }
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 })); } }