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)); } }
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); }
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); }
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); }