public async Task <IActionResult> DeleteRegistrationAsync(DeleteRegistrationViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(viewModel));
            }

            if (!viewModel.DeleteRegistration.Value)
            {
                return(RedirectToRoute(RouteConstants.RegistrationDetails, new { profileId = viewModel.ProfileId }));
            }

            var isSuccess = await _registrationLoader.DeleteRegistrationAsync(User.GetUkPrn(), viewModel.ProfileId);

            if (isSuccess)
            {
                await _cacheService.SetAsync(CacheKey, new RegistrationCancelledConfirmationViewModel { Uln = viewModel.Uln }, CacheExpiryTime.XSmall);

                return(RedirectToRoute(RouteConstants.RegistrationCancelledConfirmation));
            }
            else
            {
                _logger.LogWarning(LogEvent.RegistrationNotDeleted, $"Unable to delete registration. Method: DeleteRegistrationAsync(Ukprn: {User.GetUkPrn()}, id: {viewModel.ProfileId}), User: {User.GetUserEmail()}");
                return(RedirectToRoute(RouteConstants.Error, new { StatusCode = 500 }));
            }
        }
        public async Task <IActionResult> DeleteRegistrationAsync(int profileId)
        {
            var registrationDetails = await _registrationLoader.GetRegistrationAssessmentAsync(User.GetUkPrn(), profileId, RegistrationPathwayStatus.Active);

            if (registrationDetails == null || registrationDetails.IsResultExist || registrationDetails.IsIndustryPlacementExist)
            {
                return(RedirectToRoute(RouteConstants.PageNotFound));
            }

            var viewModel = new DeleteRegistrationViewModel {
                ProfileId = registrationDetails.ProfileId, Uln = registrationDetails.Uln
            };

            return(View(viewModel));
        }
        public override void Setup()
        {
            AoUkprn             = 12345678;
            ProfileId           = 99;
            HttpContextAccessor = Substitute.For <IHttpContextAccessor>();
            RegistrationLoader  = Substitute.For <IRegistrationLoader>();
            CacheService        = Substitute.For <ICacheService>();
            Logger     = Substitute.For <ILogger <RegistrationController> >();
            Controller = new RegistrationController(RegistrationLoader, CacheService, Logger);

            var httpContext = new ClaimsIdentityBuilder <RegistrationController>(Controller)
                              .Add(CustomClaimTypes.Ukprn, AoUkprn.ToString())
                              .Add(CustomClaimTypes.UserId, Guid.NewGuid().ToString())
                              .Build()
                              .HttpContext;

            HttpContextAccessor.HttpContext.Returns(httpContext);
            CacheKey  = CacheKeyHelper.GetCacheKey(httpContext.User.GetUserId(), CacheConstants.RegistrationCacheKey);
            ViewModel = new DeleteRegistrationViewModel {
                Uln = 1234567890, ProfileId = ProfileId
            };
        }