public async Task <IActionResult> LoginCompanyOtp(LoginCompanyOtpDto loginDto) { ServiceResponse <CompanyUserSuccessDto> response = await _accountService.LoginCompanyOtp(loginDto); if (!response.Success) { return(BadRequest(response.Message)); } else { return(Ok(response.Data)); } }
async Task <ServiceResponse <CompanyUserSuccessDto> > IAccountService.LoginCompanyOtp(LoginCompanyOtpDto loginDto) { ServiceResponse <CompanyUserSuccessDto> response = new ServiceResponse <CompanyUserSuccessDto>(); CompanyUserOtp otp = await _context.CompanyUserOtps.FirstOrDefaultAsync(a => a.email == loginDto.email); if (otp == null) { response.Success = false; response.Message = "Something went wrong, the email sent does not exist"; } if (loginDto.otp == otp.otp) { CompanyUser user = await _context.CompanyUsers.FirstOrDefaultAsync(a => a.email == loginDto.email); response.Data = new CompanyUserSuccessDto(user.companyUserId, user.companyId, user.companyName, user.email); } else if (otp.isExpired || DateTime.Now.Subtract(DateTime.Parse(otp.logInTime)).TotalMinutes > 30) { otp.isExpired = true; _context.CompanyUserOtps.Update(otp); response.Success = false; response.Message = "The OTP entered has expired"; } else { otp.otpAttemptCount++; _context.CompanyUserOtps.Update(otp); response.Success = false; response.Message = "Error wrong OTP entered" + otp.otp; } return(response); }