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); }
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); }
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)); }
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); }
public EmployerSearchViewModel() { Employers = new PageableViewModel <EmployerViewModel> { CurrentPage = 1 }; }
public EmployerSearchViewModel() { EmployerResultsPage = new PageableViewModel <EmployerResultViewModel> { CurrentPage = 1 }; }