コード例 #1
0
        public EmployerSearchViewModel SearchEdrsEmployers(EmployerSearchViewModel searchViewModel)
        {
            var pageSize             = _configurationService.Get <RecruitWebConfiguration>().PageSize;
            var resultsPage          = _employerService.GetEmployers(searchViewModel.EdsUrn, searchViewModel.Name, searchViewModel.Location, searchViewModel.Employers.CurrentPage, pageSize);
            var resultsViewModelPage = resultsPage.ToViewModel(resultsPage.Page.Select(e => e.Convert()).ToList());

            searchViewModel.Employers = resultsViewModelPage;
            return(searchViewModel);
        }
コード例 #2
0
        public ActionResult GetEmployerByName(string _searchText, int?_skip)
        {
            var _employerDetails = _iPaticipantServiceClient.getEmployersByName(_searchText, _skip.Value, GlobalConst.Records.LandingTake);
            EmployerSearchViewModel objEmployerList = new EmployerSearchViewModel();

            objEmployerList.EmployerDetails = Mapper.Map <IEnumerable <Employer> >(_employerDetails.EmployerDetails);
            objEmployerList.TotalCount      = _employerDetails.TotalCount;
            return(Json(objEmployerList, GlobalConst.ContentTypes.TextHtml));
        }
コード例 #3
0
        public void ShoulReturnEmployersForNameAndLocationEmployerSearchViewModel(int unactivatedEmployerCount)
        {
            // Arrange.
            var searchViewModel = new EmployerSearchViewModel
            {
                FilterType     = EmployerFilterType.NameAndLocation,
                ProviderSiteId = 42,
                Name           = "a",
                Location       = "b",
                Employers      = new PageableViewModel <EmployerViewModel>
                {
                    CurrentPage = 3
                }
            };

            var employers = new Fixture()
                            .CreateMany <Employer>(PageSize)
                            .ToArray();

            var vacancyParties = BuildFakeVacancyParties(employers, unactivatedEmployerCount);

            var pageableVacancyParties = new Fixture()
                                         .Build <Pageable <VacancyOwnerRelationship> >()
                                         .With(each => each.Page, vacancyParties)
                                         .Create();

            Expression <Func <EmployerSearchRequest, bool> > matchingSearchRequest = it => it.ProviderSiteId == searchViewModel.ProviderSiteId;

            MockProviderService.Setup(mock => mock
                                      .GetVacancyOwnerRelationships(It.Is(matchingSearchRequest), searchViewModel.Employers.CurrentPage, PageSize))
            .Returns(pageableVacancyParties);

            Expression <Func <IEnumerable <int>, bool> > matchingEmployerIds = it => true;

            MockEmployerService.Setup(mock => mock
                                      .GetEmployers(It.Is(matchingEmployerIds), It.IsAny <bool>()))
            .Returns(employers);

            var provider = GetProviderProvider();

            // Act.
            var viewModel = provider.GetVacancyOwnerRelationshipViewModels(searchViewModel);

            // Assert.
            viewModel.Should().NotBeNull();

            viewModel.ProviderSiteId.Should().Be(searchViewModel.ProviderSiteId);

            viewModel.Employers.Should().NotBeNull();
            viewModel.Employers.Page.Count().Should().Be(PageSize - unactivatedEmployerCount);

            viewModel.FilterType.Should().Be(EmployerFilterType.NameAndLocation);
            viewModel.Name.Should().NotBeEmpty();
            viewModel.Location.Should().NotBeEmpty();
        }
コード例 #4
0
        public ActionResult SearchExistingEmployer(EmployerSearchViewModel viewModel)
        {
            /*
             * var response = _vacancyPostingMediator.GetProviderEmployers(viewModel);
             *
             * ModelState.Clear();
             *
             * if (response.Message != null)
             * {
             *  SetUserMessage(response.Message.Text, response.Message.Level);
             * }
             *
             * switch (response.Code)
             * {
             *  case VacancyPostingMediatorCodes.GetProviderEmployers.FailedValidation:
             *      response.ValidationResult.AddToModelState(ModelState, string.Empty);
             *      return View("SelectEmployer", response.ViewModel);
             *
             *  case VacancyPostingMediatorCodes.GetProviderEmployers.Ok:
             *  case VacancyPostingMediatorCodes.GetProviderEmployers.NoResults:
             *      return View("SelectEmployer", response.ViewModel);
             *
             *  default:
             *      throw new InvalidMediatorCodeException(response.Code);
             * }
             */

            var model = new EmployerSearchViewModel()
            {
                ProviderSiteErn = "ERN1",
                FilterType      = EmployerFilterType.Ern,
                Ern             = "ERN2",
                Name            = "Employer",
                Location        = "Location",
                EmployerResults = new EmployerResultViewModel[]
                {
                    new EmployerResultViewModel()
                    {
                    }
                },
                EmployerResultsPage = new PageableViewModel <EmployerResultViewModel>()
                {
                }
            };

            SetUserMessage("Test", Common.Constants.UserMessageLevel.Info);

            return(View("SelectEmployer", model));
        }
コード例 #5
0
        public EmployerSearchViewModel SearchEmployers(EmployerSearchViewModel searchViewModel)
        {
            var searchParameters = new EmployerSearchParameters
            {
                Id       = searchViewModel.Id,
                EdsUrn   = searchViewModel.EdsUrn,
                Name     = searchViewModel.Name,
                Location = searchViewModel.Location
            };
            var results   = _employerService.SearchEmployers(searchParameters);
            var employers = results.Select(e => e.Convert()).ToList();

            searchViewModel.Employers.Page         = employers;
            searchViewModel.Employers.ResultsCount = employers.Count;
            return(searchViewModel);
        }
コード例 #6
0
 public ActionResult getEmployerByEmployerNameSearch(string EmployerName, int skip)
 {
     try
     {
         var getAllViewModel = _employerBL.GetAllEmployerByEmployerName(EmployerName, skip, GlobalConst.Records.FileTake);
         EmployerSearchViewModel employerSearchViewModel = new EmployerSearchViewModel();
         employerSearchViewModel.EmployerSearch = Mapper.Map <IEnumerable <EmployerSearch> >(getAllViewModel.EmployerDetails);
         employerSearchViewModel.EmployerCount  = getAllViewModel.TotalCount;
         return(Json(employerSearchViewModel, GlobalConst.ContentTypes.TextHtml));
     }
     catch (Exception ex)
     {
         _arCommonService.CreateErrorLog(ex.Message, ex.StackTrace);
         return(View());
     }
 }
コード例 #7
0
        public MediatorResponse <EmployerSearchViewModel> SearchEmployers(EmployerSearchViewModel searchViewModel)
        {
            var viewModel = searchViewModel;

            if (searchViewModel.PerformSearch)
            {
                var validatonResult = _employerSearchViewModelServerValidator.Validate(searchViewModel);

                if (!validatonResult.IsValid)
                {
                    return(GetMediatorResponse(AdminMediatorCodes.SearchEmployers.FailedValidation, viewModel, validatonResult));
                }

                viewModel = _employerProvider.SearchEmployers(searchViewModel);
            }

            return(GetMediatorResponse(AdminMediatorCodes.SearchEmployers.Ok, viewModel));
        }
コード例 #8
0
        public ActionResult Employers(EmployerSearchViewModel viewModel)
        {
            var response = _adminMediator.SearchEmployers(viewModel);

            ModelState.Clear();

            switch (response.Code)
            {
            case AdminMediatorCodes.SearchEmployers.FailedValidation:
                response.ValidationResult.AddToModelState(ModelState, "SearchViewModel");
                return(View(response.ViewModel));

            case AdminMediatorCodes.SearchEmployers.Ok:
                return(View(response.ViewModel));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
コード例 #9
0
        public EmployerSearchViewModel GetVacancyOwnerRelationshipViewModels(EmployerSearchViewModel viewModel)
        {
            EmployerSearchRequest parameters;

            switch (viewModel.FilterType)
            {
            case EmployerFilterType.EdsUrn:
                parameters = new EmployerSearchRequest(viewModel.ProviderSiteId, viewModel.EdsUrn);
                break;

            case EmployerFilterType.NameAndLocation:
            case EmployerFilterType.NameOrLocation:
                parameters = new EmployerSearchRequest(viewModel.ProviderSiteId, viewModel.Name, viewModel.Location);
                break;

            case EmployerFilterType.Undefined:
                parameters = new EmployerSearchRequest(viewModel.ProviderSiteId);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(viewModel), viewModel.FilterType, string.Empty);
            }

            var pageSize       = _configurationService.Get <RecruitWebConfiguration>().PageSize;
            var vacancyParties = _providerService.GetVacancyOwnerRelationships(parameters, viewModel.Employers.CurrentPage, pageSize);

            var employerIds = vacancyParties.Page
                              .Select(vp => vp.EmployerId)
                              .Distinct();

            var employers = _employerService.GetEmployers(employerIds);

            var resultsPage = vacancyParties.ToViewModel(vacancyParties.Page
                                                         // Exclude employers from search results that are NOT returned from Employer Service, status may be 'Suspended' etc.
                                                         .Where(vacancyOwnerRelationship => employers
                                                                .Any(employer => employer.EmployerId == vacancyOwnerRelationship.EmployerId))
                                                         .Select(vacancyOwnerRelationship => vacancyOwnerRelationship.Convert(employers.Single(employer => employer.EmployerId == vacancyOwnerRelationship.EmployerId))
                                                                 .Employer));

            viewModel.Employers = resultsPage;

            return(viewModel);
        }
コード例 #10
0
 public ActionResult SearchEmployers(EmployerSearchViewModel viewModel)
 {
     viewModel.PerformSearch = true;
     return(RedirectToRoute(ManagementRouteNames.AdminEmployers, viewModel.RouteValues));
 }