Beispiel #1
0
        public async Task <SignInResultViewModel> SignInStepTwo(SignInStepTwoViewModel model)
        {
            var phone = model.PhoneNumber.Trim().ToNormalPhoneNumber();
            var code  = model.SecurityCode.Trim().ToNormalNumber();

            var user = await _context.Users.FirstOrDefaultAsync(w => w.PhoneNumber == phone);

            if (user == null)
            {
                throw new Exception("کاربر مورد نظر یافت نشد");
            }

            if ((user.SecurityCode != code) ||
                (user.SecurityCode == code && user.SecurityCodeExpiration < DateTime.Now))
            {
                throw new Exception("کد وارد شده معتبر نیست");
            }

            return(new SignInResultViewModel
            {
                PhoneNumber = phone,
                FullName = user.FullName,
                RoleEnum = user.RoleEnum,
                RoleTitle = ((RoleEnum)user.RoleEnum).GetEnumName(),
                Token = _jwtTokenGenerator.GenerateToken(user.Id, true)
            });
        }
Beispiel #2
0
        public async Task <IActionResult> SingInStepTwo([FromBody] SignInStepTwoViewModel model)
        {
            try
            {
                var result = await _userRepository.SignInStepTwo(model);

                return(Ok(_result.SetSuccess(result)));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
                return(BadRequest(_result.SetBadRequest(ex)));
            }
        }