Ejemplo n.º 1
0
        public void GetVacanciesSummaryForProviderShouldCallVacancySummaryService()
        {
            const int         providerId     = 1;
            const int         providerSiteId = 2;
            const int         employerId     = 3;
            const VacancyType vacancyType    = VacancyType.Apprenticeship;

            var search = new VacanciesSummarySearchViewModel
            {
                PageSize    = 5,
                VacancyType = vacancyType
            };

            var vacancySummaryService = new Mock <IVacancySummaryService>();
            var mapper = new Mock <IMapper>();

            mapper.Setup(m => m.Map <VacancySummary, VacancySummaryViewModel>(It.IsAny <VacancySummary>()))
            .Returns(new VacancySummaryViewModel
            {
                VacancyOwnerRelationshipId = employerId,
                VacancyId = 0
            });


            int tmp;

            vacancySummaryService.Setup(s => s.GetSummariesForProvider(It.IsAny <VacancySummaryQuery>(), out tmp))
            .Returns(
                new List <VacancySummary>()
            {
                new VacancySummary()
                {
                    VacancyType = VacancyType.Apprenticeship,
                    Title       = "Test",
                    Address     = new PostalAddress()
                    {
                        Town = "Test"
                    }
                }
            });

            vacancySummaryService.Setup(s => s.GetLotteryCounts(It.IsAny <VacancySummaryQuery>())).Returns(
                new VacancyCounts()
            {
                RejectedCount = 1
            });

            var provider = new VacancyProviderBuilder()
                           .With(mapper)
                           .With(vacancySummaryService)
                           .BuildVacancyPostingProvider();

            provider.GetVacanciesSummaryForProvider(providerId, providerSiteId, search);

            vacancySummaryService.Verify(s => s.GetSummariesForProvider(It.IsAny <VacancySummaryQuery>(), out tmp), Times.Once);
        }
Ejemplo n.º 2
0
        public ActionResult Home(VacanciesSummarySearchViewModel vacanciesSummarySearch)
        {
            var response = _providerUserMediator.GetHomeViewModel(User.Identity.Name, User.GetUkprn(), vacanciesSummarySearch);

            ModelState.Clear();

            if (response.Message != null)
            {
                SetUserMessage(response.Message.Text, response.Message.Level);
            }

            switch (response.Code)
            {
            case ProviderUserMediatorCodes.GetHomeViewModel.ProviderNotFound:
            case ProviderUserMediatorCodes.GetHomeViewModel.Error:
                return(View("HomeError", response.ViewModel));

            case ProviderUserMediatorCodes.GetHomeViewModel.Ok:
                return(View(response.ViewModel));

            default:
                throw new InvalidMediatorCodeException(response.Code);
            }
        }
Ejemplo n.º 3
0
        public MediatorResponse <HomeViewModel> GetHomeViewModel(string username, string ukprn, VacanciesSummarySearchViewModel vacanciesSummarySearch)
        {
            var stopwatch = new Stopwatch();

            stopwatch.Start();

            var providerUserViewModel = _providerUserProvider.GetUserProfileViewModel(username) ?? new ProviderUserViewModel();

            _logService.Info($"Retrieved provider user {stopwatch.ElapsedMilliseconds}ms elapsed");

            var viewModel = new HomeViewModel
            {
                ProviderUserViewModel = providerUserViewModel,
                CandidateSearch       = new CandidateSearchViewModel()
            };

            try
            {
                var provider = _providerProvider.GetProviderViewModel(ukprn);
                _logService.Info($"Retrieved provider {stopwatch.ElapsedMilliseconds}ms elapsed");
                var providerSites = GetProviderSites(ukprn);
                _logService.Info($"Retrieved provider sites {stopwatch.ElapsedMilliseconds}ms elapsed");
                var providerSiteId = providerUserViewModel.DefaultProviderSiteId;
                if (providerSites.All(ps => ps.Value != Convert.ToString(providerUserViewModel.DefaultProviderSiteId)))
                {
                    providerSiteId = Convert.ToInt32(providerSites.First().Value);
                }
                var vacanciesSummary = _vacancyProvider.GetVacanciesSummaryForProvider(provider.ProviderId, providerSiteId, vacanciesSummarySearch);
                _logService.Info($"Retrieved vacancy summaries {stopwatch.ElapsedMilliseconds}ms elapsed");

                viewModel.ProviderViewModel = provider;
                viewModel.ProviderSites     = providerSites;
                viewModel.VacanciesSummary  = vacanciesSummary;

                return(GetMediatorResponse(ProviderUserMediatorCodes.GetHomeViewModel.Ok, viewModel));
            }
            catch (CustomException ex)
            {
                if (ex.Code == ProviderServiceCodes.ProviderNotFound)
                {
                    _logService.Info(ex.Message);
                    return(GetMediatorResponse(ProviderUserMediatorCodes.GetHomeViewModel.ProviderNotFound, viewModel));
                }
                _logService.Error(ex);
                return(GetMediatorResponse(ProviderUserMediatorCodes.GetHomeViewModel.Error, viewModel, string.Format(HomeViewModelMessages.ProviderNotFound, ukprn), UserMessageLevel.Warning));
            }
            catch (Exception ex)
            {
                _logService.Error(ex);
                return(GetMediatorResponse(ProviderUserMediatorCodes.GetHomeViewModel.Error, viewModel, string.Format(HomeViewModelMessages.Error, ukprn), UserMessageLevel.Error));
            }
        }
Ejemplo n.º 4
0
 public DeleteVacancyViewModel(VacanciesSummarySearchViewModel vacanciesSummarySearch) : base(vacanciesSummarySearch)
 {
 }