예제 #1
0
        public async Task <AccessRefreshTokensDto> GenerateAccessRefreshTokens(Guid userId, string userName, string email)
        {
            var refreshToken = _jwtFactory.GenerateRefreshToken();

            var oldRefreshTokens = await _dbContext.RefreshTokens
                                   .Where(rt => rt.UserId == userId)
                                   .ToListAsync();

            _dbContext.RemoveRange(oldRefreshTokens);

            _dbContext.RefreshTokens.Add(new RefreshTokenModel
            {
                Token     = refreshToken,
                ExpiresIn = DateTime.UtcNow.AddSeconds(AuthConstants.RefreshTokenLifetimeInSeconds),
                UserId    = userId,
            });

            await _dbContext.SaveChangesAsync();

            var accessToken = await _jwtFactory.GenerateAccessToken(userId, userName, email);

            return(new AccessRefreshTokensDto
            {
                AccessToken = accessToken,
                RefreshToken = refreshToken
            });
        }
예제 #2
0
        public async Task <UserDto> Handle(CreateUserCommand request, CancellationToken cancellationToken)
        {
            var user = new UserEntity(
                userName: request.UserName,
                email: request.Email,
                password: request.Password
                );

            await _dbContext.Users.AddAsync(_mapper.Map <UserModel>(user), cancellationToken);

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(_mapper.Map <UserDto>(user));
        }
예제 #3
0
        public async Task <JobDto> Handle(CreateJobCommand request, CancellationToken cancellationToken)
        {
            var currency  = new CurrencySymbol(request.CurrencySymbol);
            var minSalary = new IntegerMoney(request.MinSalary, currency);
            var maxSalary = new IntegerMoney(request.MaxSalary, currency);
            var job       = new JobEntity(
                name: request.Name,
                minSalary: minSalary,
                maxSalary: maxSalary,
                description: request.Description,
                shortDescription: request.ShortDescription
                );

            await _dbContext.Jobs.AddAsync(_mapper.Map <JobModel>(job), cancellationToken);

            await _dbContext.SaveChangesAsync(cancellationToken);

            return(_mapper.Map <JobDto>(job));
        }