예제 #1
0
        public async Task <TResponse> Handle(
            TRequest request,
            CancellationToken cancellationToken,
            RequestHandlerDelegate <TResponse> next)
        {
            var courseId   = _descriptor.GetCourseId(request);
            var providerId = await _providerOwnershipCache.GetProviderForCourse(courseId);

            if (providerId == null)
            {
                throw new ResourceDoesNotExistException(ResourceType.Course, courseId);
            }

            if (IsAuthorized(providerId))
            {
                var providerInfo = await _providerInfoCache.GetProviderInfo(providerId.Value);

                _providerContextProvider.SetProviderContext(new ProviderContext(providerInfo));

                return(await next());
            }
            else
            {
                throw new NotAuthorizedException();
            }
        }
예제 #2
0
        public async Task <IActionResult> SearchProvider(
            int UKPRN,
            [FromServices] IProviderInfoCache providerInfoCache,
            [FromServices] IProviderContextProvider providerContextProvider)
        {
            var providerInfo = await providerInfoCache.GetProviderInfoForUkprn(UKPRN);

            providerContextProvider.SetProviderContext(new ProviderContext(providerInfo));

            Session.SetInt32("UKPRN", UKPRN);
            return(RedirectToAction("Dashboard", "Provider"));
        }
        public async Task <IActionResult> Confirmed(
            [FromServices] IProviderContextProvider providerContextProvider,
            [FromServices] IProviderInfoCache providerInfoCache,
            ConfirmedQuery request)
        {
            var vm = await _mediator.Send(request);

            var providerInfo = await providerInfoCache.GetProviderInfo(vm.ProviderId);

            providerContextProvider.SetProviderContext(new ProviderContext(providerInfo));

            return(View(vm));
        }