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)); }
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))); }