Beispiel #1
0
        public async Task <IActionResult> RejectJobAdvert(RejectJobAdvertViewModel vm)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = await _orchestrator.GetVacancyRejectJobAdvertAsync(vm);

                return(View("RejectJobAdvert", viewModel));
            }

            if (vm.RejectJobAdvert.GetValueOrDefault())
            {
                var response = await _orchestrator.RejectJobAdvertAsync(vm, User.ToVacancyUser());

                if (!response.Success)
                {
                    response.AddErrorsToModelState(ModelState);
                }

                if (response.Data.IsRejected)
                {
                    return(RedirectToRoute(RouteNames.JobAdvertConfirmation_Get));
                }
            }

            return(RedirectToRoute(RouteNames.Vacancy_Preview_Get, new { VacancyId = vm.VacancyId, SubmitToEfsa = false }));
        }
Beispiel #2
0
        public async Task RejectJobAdvertAsync_ShouldSendCommand()
        {
            //Arrange
            var user = new VacancyUser {
                Email = "*****@*****.**", Name = "advertname", UserId = "advertId"
            };

            var vacancy = new Vacancy
            {
                EmployerAccountId = "ABCDEF",
                AccountLegalEntityPublicHashedId = "XVYABD",
                Id                = Guid.Parse("84af954e-5baf-4942-897d-d00180a0839e"),
                Title             = "has a value",
                NumberOfPositions = 1,
                EmployerLocation  = new Address {
                    Postcode = "has a value"
                },
                ShortDescription = "has a value",
                ProgrammeId      = "has a value",
                Wage             = new Wage {
                    Duration = 1, WageType = WageType.FixedWage
                },
                LegalEntityName    = "legal name",
                EmployerNameOption = EmployerNameOption.RegisteredName,
                StartDate          = DateTime.Now,
                Status             = VacancyStatus.Review,
                VacancyReference   = 123456
            };

            var rejectJobAdvertViewModel = new RejectJobAdvertViewModel {
                RejectJobAdvert = true, VacancyId = vacancy.Id, EmployerAccountId = "ABCDEF"
            };

            _mockRecruitVacancyClient.Setup(x => x.GetVacancyAsync(vacancy.Id)).ReturnsAsync(vacancy);
            _mockRecruitVacancyClient.Setup(x => x.GetEmployerDescriptionAsync(vacancy)).ReturnsAsync("employer description");
            _mockRecruitVacancyClient.Setup(x => x.GetEmployerNameAsync(vacancy)).ReturnsAsync("employer name");
            _mockRecruitVacancyClient.Setup(c => c.Validate(vacancy, It.IsAny <VacancyRuleSet>())).Returns(new EntityValidationResult());

            var geocodeImageService = new Mock <IGeocodeImageService>();
            var externalLinks       = new Mock <IOptions <ExternalLinksConfiguration> >();
            var mapper = new DisplayVacancyViewModelMapper(geocodeImageService.Object, externalLinks.Object, _mockRecruitVacancyClient.Object);
            var legalEntityAgreement = new Mock <ILegalEntityAgreementService>();
            var utility = new Utility(_mockRecruitVacancyClient.Object, Mock.Of <IFeature>());

            var sut = new VacancyPreviewOrchestrator(_mockRecruitVacancyClient.Object,
                                                     Mock.Of <ILogger <VacancyPreviewOrchestrator> >(), mapper,
                                                     _mockReviewSummaryService.Object, legalEntityAgreement.Object,
                                                     _mockmessaging.Object,
                                                     Mock.Of <IOptions <ExternalLinksConfiguration> >(), utility);

            //Act
            var response = await sut.RejectJobAdvertAsync(rejectJobAdvertViewModel, user);

            //Assert
            _mockmessaging.Verify(c => c.SendCommandAsync(It.IsAny <ICommand>()), Times.Once());
            response.Data.IsRejected.Should().Be(true);
        }
        public async Task <RejectJobAdvertViewModel> GetVacancyRejectJobAdvertAsync(VacancyRouteModel vrm)
        {
            var vacancy = await _vacancyClient.GetVacancyAsync(vrm.VacancyId);

            var vm = new RejectJobAdvertViewModel
            {
                RejectionReason      = vacancy.EmployerRejectedReason,
                TrainingProviderName = vacancy.TrainingProvider.Name
            };

            return(vm);
        }
        public async Task <OrchestratorResponse <RejectVacancyResponse> > RejectJobAdvertAsync(RejectJobAdvertViewModel vm, VacancyUser user)
        {
            var vacancy = await _utility.GetAuthorisedVacancyAsync(vm, RouteNames.RejectJobAdvert_Post);

            if (!vacancy.CanReject)
            {
                throw new InvalidStateException(string.Format(ErrMsg.VacancyNotAvailableForReject, vacancy.Title));
            }

            return(await ValidateAndExecute(
                       vacancy,
                       v => ValidateVacancy(v, RejectValidationRules),
                       v => RejectActionAsync(v, user)
                       ));
        }