Beispiel #1
0
 private void UpdateLocationCookie(LocationCookieItem location)
 {
     if (!string.IsNullOrEmpty(location.Name) && location.Lat != 0 && location.Lon != 0)
     {
         _locationCookieStorageService.Update(Constants.LocationCookieName, location, 2);
     }
 }
        public async Task <IActionResult> Index(IndexRequest request)
        {
            IndexRequest savedRequest = null;

            if (request.FromSearch)
            {
                savedRequest = _cookieStorage.Get(CookieNames.ManageApprentices);

                if (savedRequest != null)
                {
                    request = savedRequest;
                }
            }

            if (savedRequest == null)
            {
                _cookieStorage.Update(CookieNames.ManageApprentices, request);
            }

            var viewModel = await _modelMapper.Map <IndexViewModel>(request);

            viewModel.SortedByHeader();

            return(View(viewModel));
        }
        private void updateExistingCookieWithNewData(EmployerAccountData existingCookie, EmployerAccountOrganisationData organisationData)
        {
            existingCookie.EmployerAccountOrganisationData = organisationData;

            _cookieRepository
            .Update(
                CookieName,
                existingCookie);
        }
Beispiel #4
0
        private void updateExistingCookieWithNewData(EmployerAccountData existingCookie, EmployerAccountPayeRefData payeRefData)
        {
            existingCookie.EmployerAccountPayeRefData = payeRefData;

            _cookieRepository
            .Update(
                CookieName,
                existingCookie);
        }
        public async Task <IActionResult> CreateShortlistItem(CreateShortlistItemRequest request)
        {
            var cookie = _shortlistCookieService.Get(Constants.ShortlistCookieName);

            if (cookie == null)
            {
                cookie = new ShortlistCookieItem
                {
                    ShortlistUserId = Guid.NewGuid()
                };
            }
            _shortlistCookieService.Update(Constants.ShortlistCookieName, cookie, 30);

            var location = _locationCookieService.Get(Constants.LocationCookieName);

            var result = await _mediator.Send(new CreateShortlistItemForUserCommand
            {
                Lat   = location?.Lat,
                Lon   = location?.Lon,
                Ukprn = request.Ukprn,
                LocationDescription = string.IsNullOrEmpty(location?.Name) ? null : location.Name,
                TrainingCode        = request.TrainingCode,
                ShortlistUserId     = cookie.ShortlistUserId
            });

            if (!string.IsNullOrEmpty(request.RouteName))
            {
                return(RedirectToRoute(request.RouteName, new
                {
                    Id = request.TrainingCode,
                    ProviderId = request.Ukprn,
                    Added = string.IsNullOrEmpty(request.ProviderName) ? "" : WebEncoders.Base64UrlEncode(_protector.Protect(
                                                                                                              System.Text.Encoding.UTF8.GetBytes($"{request.ProviderName}")))
                }));
            }

            return(Accepted(result));
        }
Beispiel #6
0
        public async Task <IActionResult> CourseProviders(GetCourseProvidersRequest request)
        {
            try
            {
                var location = CheckLocation(request.Location);

                var shortlistItem = _shortlistCookieService.Get(Constants.ShortlistCookieName);

                var result = await _mediator.Send(new GetCourseProvidersQuery
                {
                    CourseId        = request.Id,
                    Location        = location?.Name ?? "",
                    Lat             = location?.Lat ?? 0,
                    Lon             = location?.Lon ?? 0,
                    DeliveryModes   = request.DeliveryModes.Select(type => (Domain.Courses.DeliveryModeType)type),
                    ProviderRatings = request.ProviderRatings.Select(rating => (Domain.Courses.ProviderRating)rating),
                    ShortlistUserId = shortlistItem?.ShortlistUserId
                });

                var cookieResult = new LocationCookieItem
                {
                    Name = result.Location,
                    Lat  = result.LocationGeoPoint?.FirstOrDefault() ?? 0,
                    Lon  = result.LocationGeoPoint?.LastOrDefault() ?? 0
                };
                UpdateLocationCookie(cookieResult);

                if (result.Course == null)
                {
                    return(RedirectToRoute(RouteNames.Error404));
                }

                var providerList = result.Providers.ToList();

                var providers = result.Providers
                                .ToDictionary(provider =>
                                              provider.ProviderId,
                                              provider => WebEncoders.Base64UrlEncode(_providerDataProtector.Protect(
                                                                                          System.Text.Encoding.UTF8.GetBytes($"{providerList.IndexOf(provider) + 1}|{result.TotalFiltered}"))));


                _courseProvidersCookieStorageService.Update(Constants.ProvidersCookieName, request, 2);

                var courseProvidersViewModel = new CourseProvidersViewModel(request, result, providers);

                if (courseProvidersViewModel.Course.AfterLastStartDate)
                {
                    return(RedirectToRoute(RouteNames.CourseDetails, new { request.Id }));
                }

                var removedProviderFromShortlist =
                    string.IsNullOrEmpty(request.Removed) ? "" : HttpUtility.HtmlDecode(GetEncodedProviderName(request.Removed));
                var addedProviderToShortlist =
                    string.IsNullOrEmpty(request.Added) ? "" : HttpUtility.HtmlDecode(GetEncodedProviderName(request.Added));

                courseProvidersViewModel.BannerUpdateMessage = GetProvidersBannerUpdateMessage(removedProviderFromShortlist, addedProviderToShortlist);

                courseProvidersViewModel.HelpFindingCourseUrl = BuildHelpFindingCourseUrl(courseProvidersViewModel.Course.Id, EntryPoint.Providers);

                return(View(courseProvidersViewModel));
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(RedirectToRoute(RouteNames.Error500));
            }
        }