예제 #1
0
        public virtual int CreateTwoFactorTokenForUser(int userId, TwoFactorLoginEntity twoFactorLoginEntity)
        {
            try
            {
                var twoFactorLogin =
                    m_userRepository.GetTwoFactorTokenForUser(userId, twoFactorLoginEntity.TokenProvider);

                if (twoFactorLogin != null)
                {
                    m_userRepository.Delete(twoFactorLogin);
                    GetSession().Flush();
                }

                var user = m_userRepository.FindById <UserEntity>(userId);

                twoFactorLoginEntity.User = user ?? throw new NoResultException <UserEntity>();

                var result = (int)m_userRepository.Create(twoFactorLoginEntity);

                return(result);
            }
            catch (ObjectNotFoundException)
            {
                throw new NoResultException <UserEntity>();
            }
        }
예제 #2
0
        public DataResult <int> CreateTwoFactorTokenForUser(UserModel user, string provider, string token)
        {
            var now = m_dateTimeProvider.UtcNow;

            var twoFactorLoginEntity = new TwoFactorLoginEntity
            {
                TokenProvider = provider,
                Token         = token,
                CreateTime    = now,
            };

            try
            {
                var result = m_userUoW.CreateTwoFactorTokenForUser(user.Id, twoFactorLoginEntity);

                return(Success(result));
            }
            catch (DatabaseException e)
            {
                m_logger.LogWarning(e);
                return(Error <int>(e.Message));
            }
        }