private VacancySummaries InternalGetVacancySummaries(int pageNumber)
        {
            var request = new GetVacancySummaryRequest
            {
                PageNumber = pageNumber
            };

            var response = default(GetVacancySummaryResponse);

            _service.Use("SecureService", client => response = client.GetVacancySummaries(request));

            if (response == null)
            {
                throw new DomainException(ErrorCodes.GetVacancySummariesServiceFailed, new { pageNumber });
            }

            var apprenticeshipTypes = new[]
            {
                "IntermediateLevelApprenticeship",
                "AdvancedLevelApprenticeship",
                "HigherApprenticeship"
            };

            var apprenticeshipSummaries = _mapper.Map <VacancySummary[], IEnumerable <ApprenticeshipSummary> >(
                response.VacancySummaries.Where(vacancySummary => apprenticeshipTypes.Contains(vacancySummary.VacancyType)).ToArray());

            var traineeshipsSummaries = _mapper.Map <VacancySummary[], IEnumerable <TraineeshipSummary> >(
                response.VacancySummaries.Where(vacancySummary => vacancySummary.VacancyType == "Traineeship").ToArray());

            return(new VacancySummaries(apprenticeshipSummaries, traineeshipsSummaries));
        }
        private int InternalGetVacancyPageCount()
        {
            var request = new GetVacancySummaryRequest
            {
                PageNumber = 1
            };

            var response = default(GetVacancySummaryResponse);

            _service.Use("SecureService", client => response = client.GetVacancySummaries(request));

            if (response == null)
            {
                throw new DomainException(ErrorCodes.GetVacancySummariesServiceFailed, new { pageNumber = request.PageNumber });
            }

            return(response.TotalPages);
        }