Пример #1
0
        public ActionResult ManageVacanciesTransfers(int providerId, int providerSiteId, string vacanciesReferenceNumbers)
        {
            var providerResponse       = _adminMediator.GetProvider(providerId);
            var providerSiteResponse   = _adminMediator.GetProviderSite(providerSiteId);
            var manageVacancyViewModel = new ManageVacancyTransferViewModel
            {
                ProviderId       = providerId,
                ProviderName     = providerResponse.ViewModel.FullName,
                ProviderSiteId   = providerSiteId,
                ProviderSiteName = providerSiteResponse.ViewModel.DisplayName + " (" + providerSiteResponse.ViewModel.EdsUrn + ")"
            };

            if (vacanciesReferenceNumbers != null)
            {
                manageVacancyViewModel.VacancyReferenceNumbers =
                    vacanciesReferenceNumbers.Split(',').Select(int.Parse).ToList();
            }
            return(View(manageVacancyViewModel));
        }
Пример #2
0
        public ActionResult ManageVacanciesTransfers(ManageVacancyTransferViewModel vacancyTransferViewModel)
        {
            var response = _adminMediator.ManageVacanciesTransfers(vacancyTransferViewModel);

            ModelState.Clear();

            switch (response.Code)
            {
            case AdminMediatorCodes.TransferVacancy.Ok:
                SetUserMessage(response.Message.Text, response.Message.Level);
                return(View("TransferVacancies"));

            case AdminMediatorCodes.TransferVacancy.FailedTransfer:
                SetUserMessage(response.Message.Text, response.Message.Level);
                return(View("TransferVacancies"));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
        public void TransferVacancy_IfRelationshipExists_UpdateVacancyOwnerRelationshipIdOfVacancy()
        {
            var vacancyTransferViewModel = new ManageVacancyTransferViewModel
            {
                ProviderId              = 10,
                ProviderSiteId          = 12,
                VacancyReferenceNumbers = new List <int> {
                    1001
                }
            };

            MockVacancyPostingService.Setup(
                vps =>
                vps.GetVacancyByReferenceNumber(
                    vacancyTransferViewModel.VacancyReferenceNumbers.FirstOrDefault()))
            .Returns(_existingVacancy);

            MockProviderService.Setup(ps => ps.GetVacancyOwnerRelationship(_existingVacancy.VacancyOwnerRelationshipId, false)).Returns(_vacancyOwnerRelationship);

            MockProviderService.Setup(ps => ps.GetVacancyOwnerRelationship(_vacancyOwnerRelationship.EmployerId, vacancyTransferViewModel.ProviderSiteId)).Returns(_vacancyOwnerRelationshipWithRelationship);

            var vacancyPostingProvider = GetVacancyPostingProvider();

            //Act
            vacancyPostingProvider.TransferVacancies(vacancyTransferViewModel);

            //Assert
            //Vacancy should have new provider and provider site ids set and use the VOR id from the new provider's VOR
            MockVacancyPostingService.Verify(mvps =>
                                             mvps.UpdateVacanciesWithNewProvider(It.Is <Vacancy>(v => v.DeliveryOrganisationId == vacancyTransferViewModel.ProviderSiteId &&
                                                                                                 v.VacancyManagerId == vacancyTransferViewModel.ProviderSiteId && v.ContractOwnerId == vacancyTransferViewModel.ProviderId &&
                                                                                                 v.VacancyOwnerRelationshipId == _vacancyOwnerRelationshipWithRelationship.VacancyOwnerRelationshipId)));
            //Neither VOR should have been updated
            MockProviderService.Verify(mps => mps.SaveVacancyOwnerRelationship(It.Is <VacancyOwnerRelationship>(vp => vp.VacancyOwnerRelationshipId == _vacancyOwnerRelationship.VacancyOwnerRelationshipId)), Times.Never);
            MockProviderService.Verify(mps => mps.SaveVacancyOwnerRelationship(It.Is <VacancyOwnerRelationship>(vp => vp.VacancyOwnerRelationshipId == _vacancyOwnerRelationshipWithRelationship.VacancyOwnerRelationshipId)), Times.Never);
        }
 public MediatorResponse <ManageVacancyTransferResultsViewModel> ManageVacanciesTransfers(ManageVacancyTransferViewModel vacancyTransferViewModel)
 {
     try
     {
         var resultsViewModel = new ManageVacancyTransferResultsViewModel();
         if (vacancyTransferViewModel.ProviderId != 0 && vacancyTransferViewModel.ProviderSiteId != 0 && vacancyTransferViewModel.VacancyReferenceNumbers.Any())
         {
             _vacancyPostingProvider.TransferVacancies(vacancyTransferViewModel);
         }
         return(GetMediatorResponse(AdminMediatorCodes.TransferVacancy.Ok, resultsViewModel, TransferVacanciesMessages.Ok, UserMessageLevel.Success));
     }
     catch (Exception exception)
     {
         _logService.Error("Failed to transfer vacancies with vacancy referencenumbers" +
                           $" ={string.Join(",", vacancyTransferViewModel.VacancyReferenceNumbers)}", exception);
         return(GetMediatorResponse(AdminMediatorCodes.TransferVacancy.FailedTransfer, new ManageVacancyTransferResultsViewModel(), TransferVacanciesMessages.FailedTransfer, UserMessageLevel.Error));
     }
 }
        public void TransferVacancy_IfNoRelationshipExists_CreateVacancyOwnerRelationship()
        {
            const int newVorId = 1234;

            var vacancyTransferViewModel = new ManageVacancyTransferViewModel
            {
                ProviderId              = 10,
                ProviderSiteId          = 12,
                VacancyReferenceNumbers = new List <int> {
                    1001
                }
            };

            MockVacancyPostingService.Setup(
                vps =>
                vps.GetVacancyByReferenceNumber(
                    vacancyTransferViewModel.VacancyReferenceNumbers.FirstOrDefault()))
            .Returns(_existingVacancy);

            MockProviderService.Setup(ps => ps.GetVacancyOwnerRelationship(_existingVacancy.VacancyOwnerRelationshipId, false)).Returns(_vacancyOwnerRelationship);

            //This method actually returns a new VOR with a zero'd ID instead of null if it doesn't exist
            MockProviderService.Setup(ps => ps.GetVacancyOwnerRelationship(_vacancyOwnerRelationship.EmployerId, vacancyTransferViewModel.ProviderSiteId)).Returns <int, int>((employerId, providerSiteId) => new VacancyOwnerRelationship {
                EmployerId = employerId, ProviderSiteId = providerSiteId
            });

            MockProviderService.Setup(ps => ps.SaveVacancyOwnerRelationship(It.Is <VacancyOwnerRelationship>(
                                                                                vor =>
                                                                                vor.VacancyOwnerRelationshipId == 0 &&
                                                                                vor.EmployerId == _vacancyOwnerRelationship.EmployerId &&
                                                                                vor.ProviderSiteId == vacancyTransferViewModel.ProviderSiteId &&
                                                                                vor.EmployerDescription == _vacancyOwnerRelationship.EmployerDescription &&
                                                                                vor.EmployerWebsiteUrl == _vacancyOwnerRelationship.EmployerWebsiteUrl)))
            .Returns <VacancyOwnerRelationship>(
                vor =>
            {
                vor.VacancyOwnerRelationshipId = newVorId;
                return(vor);
            });

            var vacancyPostingProvider = GetVacancyPostingProvider();

            //Act
            vacancyPostingProvider.TransferVacancies(vacancyTransferViewModel);

            //Assert
            //A new VOR should have been created for the new provider and provider site
            MockProviderService.Verify(
                mps =>
                mps.SaveVacancyOwnerRelationship(
                    It.Is <VacancyOwnerRelationship>(
                        vor =>
                        vor.VacancyOwnerRelationshipId == newVorId &&
                        vor.EmployerId == _vacancyOwnerRelationship.EmployerId &&
                        vor.ProviderSiteId == vacancyTransferViewModel.ProviderSiteId &&
                        vor.EmployerDescription == _vacancyOwnerRelationship.EmployerDescription &&
                        vor.EmployerWebsiteUrl == _vacancyOwnerRelationship.EmployerWebsiteUrl)));

            //And the vacancy should now use that new VOR as well as the new provider and provider site ids
            MockVacancyPostingService.Verify(mvps =>
                                             mvps.UpdateVacanciesWithNewProvider(It.Is <Vacancy>(v => v.DeliveryOrganisationId == vacancyTransferViewModel.ProviderSiteId &&
                                                                                                 v.VacancyManagerId == vacancyTransferViewModel.ProviderSiteId && v.ContractOwnerId == vacancyTransferViewModel.ProviderId && v.VacancyOwnerRelationshipId == newVorId)));
        }