Пример #1
0
        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);
        }