public CandidateApplicationSummariesViewModel GetCandidateApplicationSummaries(CandidateApplicationsSearchViewModel searchViewModel, string ukprn)
        {
            var candidateId = searchViewModel.CandidateGuid;

            var candidate = _candidateApplicationService.GetCandidate(candidateId);

            var apprenticeshipApplicationSummaries = _mapper.Map <IEnumerable <ApprenticeshipApplicationSummary>, IEnumerable <CandidateApplicationSummaryViewModel> >(_candidateApplicationService.GetApprenticeshipApplications(candidateId));
            var traineeshipApplicationSummaries    = _mapper.Map <IEnumerable <TraineeshipApplicationSummary>, IEnumerable <CandidateApplicationSummaryViewModel> >(_candidateApplicationService.GetTraineeshipApplications(candidateId));

            var candidateApplicationSummaries = apprenticeshipApplicationSummaries.Union(traineeshipApplicationSummaries).Where(a => a.Status >= ApplicationStatuses.Submitted).ToList();

            //Restrict to only the applications for vacancies owned by the logged in user
            var provider           = _providerService.GetProvider(ukprn);
            var ownedProviderSites = _providerService.GetOwnedProviderSites(provider.ProviderId).Select(ps => ps.ProviderSiteId).ToList();
            var vacancySummaries   =
                _vacancyPostingService.GetVacancySummariesByIds(
                    candidateApplicationSummaries.Select(a => a.VacancyId).Distinct())
                .Where(
                    v =>
                    (v.VacancyManagerId != null && ownedProviderSites.Contains(v.VacancyManagerId.Value)) ||
                    (v.DeliveryOrganisationId != null &&
                     ownedProviderSites.Contains(v.DeliveryOrganisationId.Value)))
                .ToDictionary(v => v.VacancyId, v => v);

            candidateApplicationSummaries = candidateApplicationSummaries.Where(a => vacancySummaries.ContainsKey(a.VacancyId)).ToList();

            var page = GetOrderedApplicationSummaries(searchViewModel.OrderByField, searchViewModel.Order, candidateApplicationSummaries).GetCurrentPage(searchViewModel).ToList();

            foreach (var application in page)
            {
                var vacancy = vacancySummaries[application.VacancyId];
                application.VacancyReferenceNumber = vacancy.VacancyReferenceNumber;
                application.EmployerLocation       = vacancy.EmployerLocation;
                application.AnonymousLinkData      = _encryptionService.Encrypt(new AnonymisedApplicationLink(application.ApplicationId, _dateTimeService.TwoWeeksFromUtcNow));
            }

            var applicationSummaries = new PageableViewModel <CandidateApplicationSummaryViewModel>
            {
                Page               = page,
                ResultsCount       = vacancySummaries.Count,
                CurrentPage        = searchViewModel.CurrentPage,
                TotalNumberOfPages = vacancySummaries.TotalPages(searchViewModel)
            };

            var viewModel = new CandidateApplicationSummariesViewModel
            {
                CandidateApplicationsSearch = searchViewModel,
                ApplicantDetails            = _mapper.Map <Candidate, ApplicantDetailsViewModel>(candidate),
                ApplicationSummaries        = applicationSummaries
            };

            return(viewModel);
        }
Ejemplo n.º 2
0
        public static PageableViewModel <T> ToViewModel <T>(this Pageable <T> pageable)
        {
            var viewModel = new PageableViewModel <T>
            {
                Page               = pageable.Page,
                ResultsCount       = pageable.ResultsCount,
                CurrentPage        = pageable.CurrentPage,
                TotalNumberOfPages = pageable.TotalNumberOfPages
            };

            return(viewModel);
        }
Ejemplo n.º 3
0
        public ActionResult Index(int page = 0, int pageSize = Constants.DefaultPageSize)
        {
            var categories = this.Data.Categories.GetAll(page, pageSize)
                             .ToList();
            var viewModel = new PageableViewModel <Category>()
            {
                Items       = categories,
                CurrentPage = page,
                PageSize    = pageSize,
                TotalCount  = this.Data.Categories.All().Count()
            };

            if (this.Request != null && this.Request.IsAjaxRequest())
            {
                return(this.PartialView("_CategoryList", viewModel));
            }

            return(this.View(viewModel));
        }
Ejemplo n.º 4
0
        public void PassExpectedModelToView_WhenGetToIndex(int page, int pageSize, int count)
        {
            // Arrange
            var dataMock = new Mock <IPickAndBookData>();
            var categoryRepositoryMock = new Mock <ICategoryRepository>();
            var categoriesAll          = GetCategories(count);
            var categories             = categoriesAll
                                         .OrderBy(c => c.CategoryName)
                                         .Skip(page * pageSize)
                                         .Take(pageSize);

            categoryRepositoryMock.Setup(c => c.GetAll(page, pageSize)).Returns(categories.AsQueryable());
            categoryRepositoryMock.Setup(c => c.All()).Returns(categoriesAll.AsQueryable());
            dataMock.Setup(c => c.Categories).Returns(categoryRepositoryMock.Object);

            CategoriesController controller = new CategoriesController(dataMock.Object);

            var expectedViewModel = new PageableViewModel <Category>()
            {
                Items       = categories.ToList(),
                CurrentPage = page,
                PageSize    = pageSize,
                TotalCount  = count
            };

            // Act
            var result = controller.Index(page, pageSize) as ViewResult;

            // Assert
            var actualModel = result.Model as PageableViewModel <Category>;

            Assert.AreEqual(expectedViewModel.CurrentPage, actualModel.CurrentPage);
            Assert.AreEqual(expectedViewModel.PageSize, actualModel.PageSize);
            Assert.AreEqual(expectedViewModel.TotalCount, actualModel.TotalCount);
            CollectionAssert.AreEqual(expectedViewModel.Items, actualModel.Items);
        }
Ejemplo n.º 5
0
 public EmployerSearchViewModel()
 {
     Employers = new PageableViewModel <EmployerViewModel> {
         CurrentPage = 1
     };
 }
 public EmployerSearchViewModel()
 {
     EmployerResultsPage = new PageableViewModel <EmployerResultViewModel> {
         CurrentPage = 1
     };
 }