private Task CloseVacancyAsync(Vacancy vacancy, ClosureReason closureReason) { vacancy.Status = VacancyStatus.Closed; vacancy.ClosedDate = _timeProvider.Now; vacancy.ClosedByUser = vacancy.TransferInfo?.TransferredByUser; vacancy.ClosureReason = closureReason; return(_vacancyRepository.UpdateAsync(vacancy)); }
public Task CloseVacancyAsync(Guid vacancyId, VacancyUser user, ClosureReason reason) { return(_messaging.SendCommandAsync(new CloseVacancyCommand(vacancyId, user, reason))); }
public CloseVacancyCommand(Guid vacancyId, VacancyUser user, ClosureReason closureReason) { VacancyId = vacancyId; User = user; ClosureReason = closureReason; }
private IList <VacancySummary> GetClosedVacancies(IEnumerable <VacancySummary> vacancies, DateTime?userLastDismissedDate, ClosureReason reason) { return(vacancies.Where(v => v.Status == VacancyStatus.Closed && v.ClosureReason == reason && v.ClosedDate > userLastDismissedDate) .OrderBy(v => v.Title) .ToList()); }
public async Task GivenApprovedVacancyReviewCommand_AndVacancyHasBeenTransferredSinceReviewWasCreated_ThenDoNotRaiseVacancyApprovedEventAndCloseVacancy(TransferReason transferReason, ClosureReason expectedClosureReason) { var transferInfo = new TransferInfo { Reason = transferReason }; var existingVacancy = _autoFixture.Build <Vacancy>() .With(x => x.TransferInfo, transferInfo) .Create(); _mockVacancyRepository.Setup(x => x.GetVacancyAsync(existingVacancy.VacancyReference.Value)).ReturnsAsync(existingVacancy); _mockVacancyReviewRepository.Setup(x => x.GetAsync(_existingReviewId)).ReturnsAsync(new VacancyReview { Id = _existingReviewId, CreatedDate = _mockTimeProvider.Object.Now.AddHours(-5), Status = ReviewStatus.UnderReview, VacancyReference = existingVacancy.VacancyReference.Value, VacancySnapshot = new Vacancy() }); var command = new ApproveVacancyReviewCommand(_existingReviewId, "comment", new List <ManualQaFieldIndicator>(), new List <Guid>()); await _sut.Handle(command, CancellationToken.None); _mockVacancyReviewRepository.Verify(x => x.UpdateAsync(It.Is <VacancyReview>(r => r.Id == _existingReviewId)), Times.Once); _mockMessaging.Verify(x => x.PublishEvent(It.IsAny <VacancyReviewApprovedEvent>()), Times.Never); existingVacancy.Status.Should().Be(VacancyStatus.Closed); existingVacancy.ClosureReason.Should().Be(expectedClosureReason); _mockVacancyRepository.Verify(x => x.UpdateAsync(existingVacancy), Times.Once); _mockCommunicationQueueService.Verify(c => c.AddMessageAsync(It.Is <CommunicationRequest>(r => r.RequestType == CommunicationConstants.RequestType.ProviderBlockedEmployerNotificationForLiveVacancies))); }