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 EditDelegateGroupDescriptionViewModel(Group group, ReturnPageQuery returnPageQuery) { GroupId = group.GroupId; GroupName = group.GroupLabel; Description = group.GroupDescription; ReturnPageQuery = returnPageQuery; }
public IActionResult SetCurrentCourseCompleteByDate(int id, ReturnPageQuery returnPageQuery) { var currentCourses = courseDataService.GetCurrentCourses(User.GetCandidateIdKnownNotNull()); var course = currentCourses.FirstOrDefault(c => c.Id == id); if (course == null) { logger.LogWarning( $"Attempt to set complete by date for course with id {id} which is not a current course for user with id {User.GetCandidateIdKnownNotNull()}" ); return(RedirectToAction("StatusCode", "LearningSolutions", new { code = 404 })); } var courseModel = new CurrentCourseViewModel(course, returnPageQuery); if (courseModel.CompleteByDate != null && !courseModel.SelfEnrolled) { logger.LogWarning( $"Attempt to set complete by date for course with id {id} for user with id ${User.GetCandidateIdKnownNotNull()} " + "but the complete by date has already been set and the user has not self enrolled" ); return(RedirectToAction("StatusCode", "LearningSolutions", new { code = 403 })); } var editCompleteByDateViewModel = new EditCompleteByDateViewModel( id, course.Name, LearningItemType.Course, courseModel.CompleteByDate, returnPageQuery, courseModel.ProgressId ); return(View("Current/SetCompleteByDate", editCompleteByDateViewModel)); }
public Task BindModelAsync(ModelBindingContext bindingContext) { if (bindingContext == null) { throw new ArgumentNullException(nameof(bindingContext)); } var fieldName = bindingContext.ValueProvider.GetValue(bindingContext.FieldName); if (fieldName.FirstValue == null) { bindingContext.Result = ModelBindingResult.Success(null); } else if (string.IsNullOrEmpty(fieldName.FirstValue)) { bindingContext.Result = ModelBindingResult.Success(new ReturnPageQuery(1, "")); } else if (ReturnPageQuery.TryGetFromFormData(fieldName.FirstValue, out var result)) { bindingContext.Result = ModelBindingResult.Success(result); } else { bindingContext.Result = ModelBindingResult.Failed(); bindingContext.ModelState.AddModelError( bindingContext.FieldName, $"{fieldName.FirstValue} is not supported." ); } return(Task.CompletedTask); }
public IActionResult NominateSupervisor(int supervisorDelegateId, ReturnPageQuery returnPageQuery) { var superviseDelegate = supervisorService.GetSupervisorDelegateDetailsById(supervisorDelegateId, GetAdminID(), 0); var model = new SupervisorDelegateViewModel(superviseDelegate, returnPageQuery); return(View("NominateSupervisor", model)); }
public CurrentLearningItemViewModel( CurrentLearningItem course, ReturnPageQuery returnPageQuery ) : base(course) { CompleteByDate = course.CompleteByDate; ReturnPageQuery = returnPageQuery; }
public SupervisorDelegateViewModel(SupervisorDelegateDetail detail, ReturnPageQuery returnPageQuery) { Id = detail.ID; FirstName = detail.FirstName; LastName = detail.LastName; DelegateEmail = detail.DelegateEmail; CandidateAssessmentCount = detail.CandidateAssessmentCount; ReturnPageQuery = returnPageQuery; }
public IActionResult EditDescription(int groupId, ReturnPageQuery returnPageQuery) { var centreId = User.GetCentreId(); var group = groupsService.GetGroupAtCentreById(groupId, centreId); var model = new EditDelegateGroupDescriptionViewModel(group !, returnPageQuery); return(View(model)); }
public CurrentCourseViewModel(CurrentCourse course, ReturnPageQuery returnPageQuery) : base( course, returnPageQuery ) { UserIsSupervisor = course.SupervisorAdminId != 0; IsEnrolledWithGroup = course.GroupCustomisationId != 0; SelfEnrolled = course.EnrollmentMethodID == 1; IsLocked = course.PLLocked; }
public DelegateCourseInfoViewModel( CourseDelegate courseDelegate, DelegateAccessRoute accessedVia, ReturnPageQuery returnPageQuery ) : this(courseDelegate) { AccessedVia = accessedVia; ReturnPageQuery = returnPageQuery; Tags = FilterableTagHelper.GetCurrentTagsForCourseDelegate(courseDelegate); }
public RemoveGroupCourseViewModel( int groupCourseId, string courseName, string groupName, ReturnPageQuery returnPageQuery ) { GroupCourseId = groupCourseId; CourseName = courseName; GroupName = groupName; ReturnPageQuery = returnPageQuery; }
public CurrentLearningResourceViewModel(ActionPlanResource resource, ReturnPageQuery returnPageQuery) : base( resource, returnPageQuery ) { LaunchResourceLink = resource.ResourceLink; ResourceDescription = resource.ResourceDescription; CatalogueName = resource.CatalogueName; ResourceType = DisplayStringHelper.AddSpacesToPascalCaseString(resource.ResourceType); AbsentInLearningHub = resource.AbsentInLearningHub; ResourceReferenceId = resource.ResourceReferenceId; }
public IActionResult DeleteGroup(int groupId, ReturnPageQuery returnPageQuery) { var delegates = groupsService.GetGroupDelegates(groupId); var courses = groupsService.GetUsableGroupCoursesForCentre(groupId, User.GetCentreId()); if (delegates.Any() || courses.Any()) { return(RedirectToAction("ConfirmDeleteGroup", new { groupId, returnPageQuery })); } groupsService.DeleteDelegateGroup(groupId, false); return(RedirectToAction("Index")); }
public IActionResult DeactivateOrDeleteAdmin(int adminId, ReturnPageQuery returnPageQuery) { var adminUser = userDataService.GetAdminUserById(adminId); if (!CurrentUserCanDeactivateAdmin(adminUser !)) { return(NotFound()); } var model = new DeactivateAdminViewModel(adminUser !, returnPageQuery); return(View(model)); }
public IActionResult EditGroupName(int groupId, ReturnPageQuery returnPageQuery) { var centreId = User.GetCentreId(); var group = groupsService.GetGroupAtCentreById(groupId, centreId); if (group?.LinkedToField != 0) { return(NotFound()); } var model = new EditGroupNameViewModel(group.GroupLabel !, returnPageQuery); return(View(model)); }
public RemoveActionPlanResourceViewModel( int learningLogItemId, string name, bool absentInLearningHub, bool apiIsAccessible, ReturnPageQuery returnPageQuery ) { LearningLogItemId = learningLogItemId; Name = name; AbsentInLearningHub = absentInLearningHub; ApiIsAccessible = apiIsAccessible; ReturnPageQuery = returnPageQuery; }
public MarkActionPlanResourceAsCompleteViewModel( int learningLogItemId, bool absentInLearningHub, string resourceName, bool apiIsAccessible, ReturnPageQuery returnPageQuery ) { LearningLogItemId = learningLogItemId; AbsentInLearningHub = absentInLearningHub; ResourceName = resourceName; ApiIsAccessible = apiIsAccessible; ReturnPageQuery = returnPageQuery; }
public GroupDelegateViewModel(GroupDelegate groupDelegate, ReturnPageQuery returnPageQuery) { GroupDelegateId = groupDelegate.GroupDelegateId; GroupId = groupDelegate.GroupId; DelegateId = groupDelegate.DelegateId; TitleName = groupDelegate.SearchableName; Name = DisplayStringHelper.GetNonSortableFullNameForDisplayOnly(groupDelegate.FirstName, groupDelegate.LastName); EmailAddress = groupDelegate.EmailAddress; CandidateNumber = groupDelegate.CandidateNumber; ProfessionalRegistrationNumber = PrnStringHelper.GetPrnDisplayString( groupDelegate.HasBeenPromptedForPrn, groupDelegate.ProfessionalRegistrationNumber ); ReturnPageQuery = returnPageQuery; }
public IActionResult ConfirmDeleteGroup(int groupId, ReturnPageQuery returnPageQuery) { var groupLabel = groupsService.GetGroupName(groupId, User.GetCentreId()) !; var delegateCount = groupsService.GetGroupDelegates(groupId).Count(); var courseCount = groupsService.GetUsableGroupCoursesForCentre(groupId, User.GetCentreId()).Count(); var model = new ConfirmDeleteGroupViewModel { GroupLabel = groupLabel, DelegateCount = delegateCount, CourseCount = courseCount, ReturnPageQuery = returnPageQuery, }; return(View(model)); }
public GroupCourseViewModel(GroupCourse groupCourse, ReturnPageQuery returnPageQuery) { GroupCustomisationId = groupCourse.GroupCustomisationId; Name = groupCourse.CourseName; Supervisor = DisplayStringHelper.GetPotentiallyInactiveAdminName( groupCourse.SupervisorFirstName, groupCourse.SupervisorLastName, groupCourse.SupervisorAdminActive ); IsMandatory = groupCourse.IsMandatory ? "Mandatory" : "Not mandatory"; IsAssessed = groupCourse.IsAssessed ? "Assessed" : "Not assessed"; AddedToGroup = groupCourse.AddedToGroup.ToString(DateHelper.StandardDateFormat); CompleteWithin = DisplayStringHelper.ConvertNumberToMonthsString(groupCourse.CompleteWithinMonths); ValidFor = DisplayStringHelper.ConvertNumberToMonthsString(groupCourse.ValidityMonths); ReturnPageQuery = returnPageQuery; }
public IActionResult EditAdminRoles(int adminId, ReturnPageQuery returnPageQuery) { var centreId = User.GetCentreId(); var adminUser = userDataService.GetAdminUserById(adminId); var categories = courseCategoriesDataService.GetCategoriesForCentreAndCentrallyManagedCourses(centreId); categories = categories.Prepend(new Category { CategoryName = "All", CourseCategoryID = 0 }); var numberOfAdmins = centreContractAdminUsageService.GetCentreAdministratorNumbers(centreId); var model = new EditRolesViewModel(adminUser !, centreId, categories, numberOfAdmins, returnPageQuery); return(View(model)); }
public IActionResult RemoveCurrentCourseConfirmation(int id, ReturnPageQuery returnPageQuery) { var currentCourses = courseDataService.GetCurrentCourses(User.GetCandidateIdKnownNotNull()); var course = currentCourses.FirstOrDefault(c => c.Id == id); if (course == null) { logger.LogWarning( $"Attempt to remove course with id {id} which is not a current course for user with id {User.GetCandidateIdKnownNotNull()}" ); return(RedirectToAction("StatusCode", "LearningSolutions", new { code = 404 })); } var model = new CurrentCourseViewModel(course, returnPageQuery); return(View("Current/RemoveCurrentCourseConfirmation", model)); }
public RemoveGroupDelegateViewModel( GroupDelegate delegateUser, string groupName, int groupId, int?progressId, ReturnPageQuery returnPageQuery ) { GroupId = groupId; GroupName = groupName; DelegateName = DisplayStringHelper.GetNonSortableFullNameForDisplayOnly( delegateUser.FirstName, delegateUser.LastName ); RemoveStartedEnrolmentsEnabled = progressId.HasValue; ReturnPageQuery = returnPageQuery; }
public SearchableAdminViewModel( AdminUser adminUser, AdminUser loggedInAdminUser, ReturnPageQuery returnPageQuery ) { Id = adminUser.Id; Name = adminUser.SearchableName; CategoryName = adminUser.CategoryName ?? "All"; EmailAddress = adminUser.EmailAddress; IsLocked = adminUser.IsLocked; CanShowDeactivateAdminButton = UserPermissionsHelper.LoggedInAdminCanDeactivateUser(adminUser, loggedInAdminUser); Tags = FilterableTagHelper.GetCurrentTagsForAdminUser(adminUser); ReturnPageQuery = returnPageQuery; }
public IActionResult RemoveGroupDelegate(int groupId, int delegateId, ReturnPageQuery returnPageQuery) { var centreId = User.GetCentreId(); var groupName = groupsService.GetGroupName(groupId, centreId); var groupDelegates = groupsService.GetGroupDelegates(groupId).ToList(); var delegateUser = groupDelegates.SingleOrDefault(gd => gd.DelegateId == delegateId); var progressId = groupsService.GetRelatedProgressIdForGroupDelegate(groupId, delegateId); var model = new RemoveGroupDelegateViewModel( delegateUser !, groupName !, groupId, progressId, returnPageQuery ); return(View(model)); }
public SearchableDelegateGroupViewModel(Group group, ReturnPageQuery returnPageQuery) { Id = group.GroupId; Name = group.GroupLabel; Description = group.GroupDescription; DelegateCount = group.DelegateCount; CourseCount = group.CoursesCount; LinkedToField = group.LinkedToField; LinkedField = group.LinkedToFieldName; AddedByAdminId = group.AddedByAdminId; AddedBy = DisplayStringHelper.GetPotentiallyInactiveAdminName( group.AddedByFirstName, group.AddedByLastName, group.AddedByAdminActive ); ShouldAddNewRegistrantsToGroup = group.ShouldAddNewRegistrantsToGroup ? Yes : No; ChangesToRegistrationDetailsShouldChangeGroupMembership = group.ChangesToRegistrationDetailsShouldChangeGroupMembership ? Yes : No; ReturnPageQuery = returnPageQuery; }
public EditCompleteByDateViewModel( int id, string name, LearningItemType type, DateTime?completeByDate, ReturnPageQuery returnPageQuery, int?progressId = null, bool?apiIsAccessible = null ) { Id = id; Name = name; Type = type; Day = completeByDate?.Day; Month = completeByDate?.Month; Year = completeByDate?.Year; ProgressId = progressId; ApiIsAccessible = apiIsAccessible; ReturnPageQuery = returnPageQuery; }
public SearchableRecommendedResourceViewModel( RecommendedResource recommendedResource, int selfAssessmentId, ReturnPageQuery returnPageQuery ) { SelfAssessmentId = selfAssessmentId; LearningResourceReferenceId = recommendedResource.LearningResourceReferenceId; LearningHubReferenceId = recommendedResource.LearningHubReferenceId; ResourceName = recommendedResource.ResourceName; ResourceDescription = recommendedResource.ResourceDescription; ResourceType = DisplayStringHelper.AddSpacesToPascalCaseString(recommendedResource.ResourceType); CatalogueName = recommendedResource.CatalogueName; ResourceLink = recommendedResource.ResourceLink; IsInActionPlan = recommendedResource.IsInActionPlan; IsCompleted = recommendedResource.IsCompleted; LearningLogItemId = recommendedResource.LearningLogId; RecommendationScore = recommendedResource.RecommendationScore; ReturnPageQuery = returnPageQuery; }
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 ))); }
public EditRolesViewModel( AdminUser user, int centreId, IEnumerable <Category> categories, CentreContractAdminUsage numberOfAdmins, ReturnPageQuery returnPageQuery ) : base(user, centreId) { IsCentreAdmin = user.IsCentreAdmin; IsSupervisor = user.IsSupervisor; IsNominatedSupervisor = user.IsNominatedSupervisor; IsTrainer = user.IsTrainer; IsContentCreator = user.IsContentCreator; ReturnPageQuery = returnPageQuery; if (user.IsCmsAdministrator) { ContentManagementRole = ContentManagementRole.CmsAdministrator; } else if (user.IsCmsManager) { ContentManagementRole = ContentManagementRole.CmsManager; } else { ContentManagementRole = ContentManagementRole.NoContentManagementRole; } LearningCategory = user.CategoryId; LearningCategories = SelectListHelper.MapOptionsToSelectListItems( categories.Select(c => (c.CourseCategoryID, c.CategoryName)), user.CategoryId ); SetUpCheckboxesAndRadioButtons(user, numberOfAdmins); }