示例#1
0
        public async Task <IActionResult> AddResourceToActionPlan(
            int selfAssessmentId,
            int resourceReferenceId,
            ReturnPageQuery returnPageQuery
            )
        {
            var delegateId = User.GetCandidateIdKnownNotNull();

            if (!actionPlanService.ResourceCanBeAddedToActionPlan(resourceReferenceId, delegateId))
            {
                return(NotFound());
            }

            try
            {
                await actionPlanService.AddResourceToActionPlan(resourceReferenceId, delegateId, selfAssessmentId);
            }
            catch (ResourceNotFoundException e)
            {
                if (!e.ApiIsAccessible)
                {
                    return(NotFound());
                }

                var assessment = selfAssessmentService.GetSelfAssessmentForCandidateById(delegateId, selfAssessmentId);
                var model      = new ResourceRemovedViewModel(assessment !);
                return(View("ResourceRemovedErrorPage", model));
            }

            var routeData = returnPageQuery.ToRouteDataDictionary();

            routeData.Add("selfAssessmentId", selfAssessmentId.ToString());
            return(RedirectToAction("RecommendedLearning", "RecommendedLearning", routeData, returnPageQuery.ItemIdToReturnTo));
        }
        public IViewComponentResult Invoke(
            string aspController,
            string aspAction,
            ReturnPageQuery returnPageQuery,
            Dictionary <string, string>?routeData,
            string linkText
            )
        {
            var aspAllRouteData = routeData != null
                ? routeData.Concat(returnPageQuery.ToRouteDataDictionary())
                                  .ToDictionary(x => x.Key, x => x.Value)
                : returnPageQuery.ToRouteDataDictionary();

            return(View(new LinkViewModelWithFragment(
                            aspController,
                            aspAction,
                            linkText,
                            aspAllRouteData,
                            returnPageQuery.ItemIdToReturnTo
                            )));
        }