예제 #1
0
        public VacancyDto CreateForUser(Int32 userId, CreateVacancyDto vacancyData)
        {
            User user = _userRepository.Get(userId);

            if (user.Type != UserType.Recruiter)
            {
                throw new ArgumentException($"Unable to create recruiter for not candidate user with id {userId}!");
            }
            if (_vacancyRepository.IsHaveForUser(userId))
            {
                throw new ArgumentException($"Vacancy for user with id {userId} have already created!");
            }

            var vacancy = new Vacancy(
                user,
                _specializationRepository.GetByName(vacancyData.Specialization),
                vacancyData.Skills
                .Select(s => _skillRepository.GetByName(s))
                .ToList(),
                vacancyData.Information);

            vacancy = _vacancyRepository.Create(vacancy);

            return(VacancyDto.Create(vacancy));
        }
예제 #2
0
        public void Should_create_new_vacancy_for_user_in_repository()
        {
            // Arrange
            var userId      = 6;
            var vacancyData = new CreateVacancyDto(
                "Spec2",
                new List <String> {
                "Skill1", "Skill3"
            },
                "Inform");

            var expected = new VacancyDto(
                userId,
                2,
                vacancyData.Specialization,
                vacancyData.Skills,
                vacancyData.Information);

            // Act
            var result = _vacancyService.CreateForUser(userId, vacancyData);

            // Assert
            Assert.That(result != null);
            Assert.That(result.Equals(expected));
            Assert.That(result.Equals(VacancyDto.Create(_vacancyRepository.GetForUser(userId))));
        }
예제 #3
0
        public void Should_return_vacancy_for_user_same_as_from_repository()
        {
            // Arrange
            var userId   = 2;
            var expected = VacancyDto.Create(_vacancyRepository.GetForUser(userId));

            // Act
            var result = _vacancyService.GetForUser(userId);

            // Assert
            Assert.That(result != null);
            Assert.That(result.Equals(expected));
        }
예제 #4
0
        public void Should_return_vacancy_by_id_same_as_from_repository()
        {
            // Arrange
            var vacancyId = 0;
            var expected  = VacancyDto.Create(_vacancyRepository.Get(vacancyId));

            // Act
            var result = _vacancyService.Get(vacancyId);

            // Assert
            Assert.That(result != null);
            Assert.That(result.Equals(expected));
        }
예제 #5
0
 public VacancyDto Delete(Int32 vacancyId)
 {
     return(VacancyDto.Create(_vacancyRepository.Delete(vacancyId)));
 }
예제 #6
0
 public VacancyDto GetForUser(Int32 userId)
 {
     return(VacancyDto.Create(_vacancyRepository.GetForUser(userId)));
 }
예제 #7
0
 public VacancyDto Get(Int32 vacancyId)
 {
     return(VacancyDto.Create(_vacancyRepository.Get(vacancyId)));
 }