public async Task <IActionResult> ReportIssueAsync(TlevelQueryViewModel viewModel)
        {
            if (viewModel == null || viewModel.PathwayStatusId == (int)TlevelReviewStatus.Queried)
            {
                return(RedirectToRoute(RouteConstants.PageNotFound));
            }

            if (!ModelState.IsValid)
            {
                var tlevelDetails = await _tlevelLoader.GetQueryTlevelViewModelAsync(User.GetUkPrn(), viewModel.PathwayId);

                tlevelDetails.IsBackToVerifyPage = viewModel.IsBackToVerifyPage;

                return(View(tlevelDetails));
            }

            var isSuccess = await _tlevelLoader.ReportIssueAsync(viewModel);

            if (isSuccess)
            {
                TempData["IsRedirect"] = true;
                return(RedirectToRoute(RouteConstants.TlevelDetailsQueriedConfirmation, new { id = viewModel.PathwayId }));
            }
            else
            {
                _logger.LogWarning(LogEvent.TlevelReportIssueFailed,
                                   $"Unable to report T level issue. Method: ReportIssueAsync, Ukprn: {User.GetUkPrn()}, TqAwardingOrganisationId: {viewModel.TqAwardingOrganisationId}, User: {User.GetUserEmail()}");
                return(RedirectToRoute(RouteConstants.QueryServiceProblem));
            }
        }
Exemplo n.º 2
0
        public override void Setup()
        {
            HttpContextAccessor = Substitute.For <IHttpContextAccessor>();
            TlevelLoader        = Substitute.For <ITlevelLoader>();
            Logger     = Substitute.For <ILogger <TlevelController> >();
            Controller = new TlevelController(TlevelLoader, Logger);

            var httpContext = new ClaimsIdentityBuilder <TlevelController>(Controller)
                              .Add(CustomClaimTypes.Ukprn, Ukprn.ToString())
                              .Build()
                              .HttpContext;

            HttpContextAccessor.HttpContext.Returns(httpContext);
            TempData            = new TempDataDictionary(HttpContextAccessor.HttpContext, Substitute.For <ITempDataProvider>());
            Controller.TempData = TempData;
            ExpectedResult      = new TlevelQueryViewModel
            {
                PathwayId       = 1,
                PathwayName     = "Test Pathway",
                PathwayStatusId = 1,
                Query           = "Test query",
                Specialisms     = new List <string> {
                    "Spl1", "Spl2"
                },
                TqAwardingOrganisationId = PathwayId
            };
        }
 public override void Given()
 {
     PathwayId      = 99;
     InputViewModel = new TlevelQueryViewModel {
         PathwayStatusId = (int)TlevelReviewStatus.AwaitingConfirmation, PathwayId = PathwayId
     };
     TlevelLoader.ReportIssueAsync(InputViewModel).Returns(false);
 }
Exemplo n.º 4
0
 public override void Given()
 {
     InputViewModel = new TlevelQueryViewModel {
         PathwayStatusId = (int)TlevelReviewStatus.AwaitingConfirmation
     };
     Controller.ModelState.AddModelError("Query", "Please enter a query.");
     TlevelLoader.GetQueryTlevelViewModelAsync(Ukprn, PathwayId).Returns(ExpectedResult);
 }
Exemplo n.º 5
0
        public override void Given()
        {
            ExpectedResult = true;

            TlevelQueryViewModel = new TlevelQueryViewModel {
                PathwayId = PathwayId, TqAwardingOrganisationId = PathwayId
            };
            VerifyTlevelDetails = new VerifyTlevelDetails {
                Id = PathwayId, TqAwardingOrganisationId = PathwayId, PathwayStatusId = StatusId
            };

            Mapper.Map <VerifyTlevelDetails>(TlevelQueryViewModel).Returns(VerifyTlevelDetails);
            InternalApiClient.VerifyTlevelAsync(VerifyTlevelDetails).Returns(ExpectedResult);

            Loader = new TlevelLoader(InternalApiClient, Mapper);
        }
        public override void Setup()
        {
            var httpContextAccessor = Substitute.For <IHttpContextAccessor>();

            httpContextAccessor.HttpContext.Returns(new DefaultHttpContext
            {
                User = new ClaimsPrincipal(new ClaimsIdentity(new[]
                {
                    new Claim(CustomClaimTypes.Ukprn, ukprn.ToString())
                }))
            });

            TlevelLoader = Substitute.For <ITlevelLoader>();
            Logger       = Substitute.For <ILogger <TlevelController> >();
            Controller   = new TlevelController(TlevelLoader, Logger)
            {
                ControllerContext = new ControllerContext
                {
                    HttpContext = httpContextAccessor.HttpContext
                }
            };

            TempData            = new TempDataDictionary(httpContextAccessor.HttpContext, Substitute.For <ITempDataProvider>());
            Controller.TempData = TempData;

            expectedResult = new TlevelQueryViewModel
            {
                PathwayId       = 1,
                PathwayName     = "Test Pathway",
                PathwayStatusId = 1,
                Query           = "Test query",
                Specialisms     = new List <string> {
                    "Spl1", "Spl2"
                },
                TqAwardingOrganisationId = pathwayId
            };
        }
        public override void Given()
        {
            _httpContextAccessor = Substitute.For <IHttpContextAccessor>();
            _httpContextAccessor.HttpContext.Returns(new DefaultHttpContext
            {
                User = new ClaimsPrincipal(new ClaimsIdentity(new[]
                {
                    new Claim(ClaimTypes.GivenName, _givename),
                    new Claim(ClaimTypes.Surname, _surname),
                    new Claim(ClaimTypes.Email, _email)
                }))
            });

            CreateMapper();
            StatusId             = (int)TlevelReviewStatus.Queried;
            TlevelQueryViewModel = new TlevelQueryViewModel {
                PathwayId = PathwayId, TqAwardingOrganisationId = PathwayId, Query = "Details Queried"
            };
            VerifyTlevelDetails = new VerifyTlevelDetails {
                Id = PathwayId, TqAwardingOrganisationId = PathwayId, PathwayStatusId = StatusId
            };
            InternalApiClient.VerifyTlevelAsync(VerifyTlevelDetails).Returns(ExpectedResult);
            Loader = new TlevelLoader(InternalApiClient, Mapper);
        }
        public async Task <bool> ReportIssueAsync(TlevelQueryViewModel viewModel)
        {
            var queriedModel = _mapper.Map <VerifyTlevelDetails>(viewModel);

            return(await _internalApiClient.VerifyTlevelAsync(queriedModel));
        }
 public override void Given()
 {
     InputViewModel = new TlevelQueryViewModel {
         PathwayStatusId = (int)TlevelReviewStatus.Queried
     };
 }
 public async override Task When()
 {
     ActualResult = await Loader.GetQueryTlevelViewModelAsync(Ukprn, PathwayId);
 }