public IActionResult EditDelegateCourseAdminField( int progressId, int promptNumber, DelegateAccessRoute accessedVia, ReturnPageQuery?returnPageQuery = null ) { var delegateCourseProgress = progressService.GetDetailedCourseProgress(progressId); var courseAdminField = courseAdminFieldsService.GetCourseAdminFieldsForCourse( delegateCourseProgress !.CustomisationId ).AdminFields.Find(caf => caf.PromptNumber == promptNumber); if (courseAdminField == null) { return(new NotFoundResult()); } var model = new EditDelegateCourseAdminFieldViewModel( progressId, promptNumber, delegateCourseProgress, accessedVia, returnPageQuery ); return(View(model)); }
public IActionResult ExecuteRemoveFromCourse( int progressId, DelegateAccessRoute accessedVia, RemoveFromCourseViewModel model ) { if (!ModelState.IsValid) { return(View("ConfirmRemoveFromCourse", model)); } var progress = progressService.GetDetailedCourseProgress(progressId); if (!courseService.DelegateHasCurrentProgress(progressId) || progress == null) { return(new NotFoundResult()); } courseService.RemoveDelegateFromCourse( progress.DelegateId, progress.CustomisationId, RemovalMethod.RemovedByAdmin ); return(RedirectToPreviousPage(progress.DelegateId, progress.CustomisationId, accessedVia, model.ReturnPageQuery)); }
public IActionResult EditDelegateCourseAdminField( EditDelegateCourseAdminFieldFormData formData, int promptNumber, int progressId, DelegateAccessRoute accessedVia ) { if (!ModelState.IsValid) { var delegateCourseProgress = progressService.GetDetailedCourseProgress(progressId); var model = new EditDelegateCourseAdminFieldViewModel( formData, delegateCourseProgress !, progressId, promptNumber, accessedVia ); return(View(model)); } progressService.UpdateCourseAdminFieldForDelegate(progressId, promptNumber, formData.Answer?.Trim()); return(RedirectToPreviousPage(formData.DelegateId, formData.CustomisationId, accessedVia, formData.ReturnPageQuery)); }
public void EditSupervisorPost_redirects_to_correct_action( DelegateAccessRoute accessedVia, string expectedController, string expectedAction ) { // Given const int supervisorId = 1; var formData = new EditSupervisorFormData { SupervisorId = supervisorId, ReturnPageQuery = ReturnPageQueryHelper.GetDefaultReturnPageQuery(itemIdToReturnTo: CardId), }; A.CallTo(() => progressService.UpdateSupervisor(ProgressId, supervisorId)).DoesNothing(); // When var result = delegateProgressController.EditSupervisor(formData, ProgressId, accessedVia); // Then var expectedFragment = accessedVia.Equals(DelegateAccessRoute.CourseDelegates) ? CardId : null; result.Should().BeRedirectToActionResult().WithControllerName(expectedController) .WithActionName(expectedAction).WithFragment(expectedFragment); }
public void UnlockCourseProgress_redirects_to_correct_action_and_unlocks_progress_and_sends_notification( DelegateAccessRoute accessedVia, string expectedController, string expectedAction, ReturnPageQuery?returnPageQuery ) { // Given A.CallTo(() => progressService.UnlockProgress(ProgressId)).DoesNothing(); // When var result = delegateProgressController.UnlockProgress( ProgressId, CustomisationId, DelegateId, accessedVia, returnPageQuery ); // Then A.CallTo(() => progressService.UnlockProgress(ProgressId)).MustHaveHappened(); var expectedFragment = accessedVia.Equals(DelegateAccessRoute.CourseDelegates) ? returnPageQuery !.Value.ItemIdToReturnTo : null; result.Should().BeRedirectToActionResult().WithControllerName(expectedController) .WithActionName(expectedAction).WithFragment(expectedFragment); }
public void EditDelegateCourseAdminField_POST_calls_service_and_redirects_to_correct_action( DelegateAccessRoute accessedVia, string expectedController, string expectedAction ) { // Given const int promptNumber = 1; const string answer = "Test Answer"; var formData = new EditDelegateCourseAdminFieldFormData { Answer = answer, ReturnPageQuery = ReturnPageQueryHelper.GetDefaultReturnPageQuery(itemIdToReturnTo: CardId), }; A.CallTo(() => progressService.UpdateCourseAdminFieldForDelegate(A <int> ._, A <int> ._, A <string> ._)) .DoesNothing(); // When var result = delegateProgressController.EditDelegateCourseAdminField( formData, promptNumber, ProgressId, accessedVia ); // Then A.CallTo(() => progressService.UpdateCourseAdminFieldForDelegate(ProgressId, promptNumber, answer)) .MustHaveHappenedOnceExactly(); var expectedFragment = accessedVia.Equals(DelegateAccessRoute.CourseDelegates) ? CardId : null; result.Should().BeRedirectToActionResult().WithControllerName(expectedController) .WithActionName(expectedAction).WithFragment(expectedFragment); }
public void EditCompleteByDatePost_redirects_to_correct_action( DelegateAccessRoute accessedVia, string expectedController, string expectedAction ) { // Given var formData = new EditCompleteByDateFormData { Day = 1, Month = 1, Year = 2021, ReturnPageQuery = ReturnPageQueryHelper.GetDefaultReturnPageQuery(itemIdToReturnTo: CardId), }; A.CallTo(() => progressService.UpdateCompleteByDate(ProgressId, A <DateTime?> ._)).DoesNothing(); // When var result = delegateProgressController.EditCompleteByDate(formData, ProgressId, accessedVia); // Then var expectedFragment = accessedVia.Equals(DelegateAccessRoute.CourseDelegates) ? CardId : null; result.Should().BeRedirectToActionResult().WithControllerName(expectedController) .WithActionName(expectedAction).WithFragment(expectedFragment); }
public IActionResult LearningLog( int progressId, DelegateAccessRoute accessedVia, string?sortBy = null, string sortDirection = GenericSortingHelper.Descending ) { sortBy ??= LearningLogSortByOptions.When.PropertyName; var learningLog = courseService.GetLearningLogDetails(progressId); if (learningLog == null) { return(NotFound()); } var searchSortPaginationOptions = new SearchSortFilterAndPaginateOptions( null, new SortOptions(sortBy, sortDirection), null, null ); var result = searchSortFilterPaginateService.SearchFilterSortAndPaginate( learningLog.Entries, searchSortPaginationOptions ); var model = new LearningLogViewModel(accessedVia, learningLog, result); return(View(model)); }
public EditCompletionDateViewModel( EditCompletionDateFormData formData, int progressId, DelegateAccessRoute accessedVia ) : base(formData) { ProgressId = progressId; AccessedVia = accessedVia; }
public DelegateCourseInfoViewModel( DelegateCourseInfo delegateCourseInfo, DelegateAccessRoute accessedVia, ReturnPageQuery?returnPageQuery = null ) : this(delegateCourseInfo) { AccessedVia = accessedVia; ReturnPageQuery = returnPageQuery; }
public DelegateCourseInfoViewModel( CourseDelegate courseDelegate, DelegateAccessRoute accessedVia, ReturnPageQuery returnPageQuery ) : this(courseDelegate) { AccessedVia = accessedVia; ReturnPageQuery = returnPageQuery; Tags = FilterableTagHelper.GetCurrentTagsForCourseDelegate(courseDelegate); }
public EditCompletionDateViewModel( int progressId, DelegateAccessRoute accessedVia, DelegateCourseInfo info, ReturnPageQuery?returnPageQuery ) : base(info, returnPageQuery) { ProgressId = progressId; AccessedVia = accessedVia; }
public EditSupervisorViewModel( EditSupervisorFormData formData, int progressId, DelegateAccessRoute accessedVia, IEnumerable <AdminUser> supervisors ) : base(formData) { ProgressId = progressId; AccessedVia = accessedVia; Supervisors = PopulateSupervisors(formData.SupervisorId, supervisors); }
public IActionResult UnlockProgress( int progressId, int customisationId, int delegateId, DelegateAccessRoute accessedVia, ReturnPageQuery?returnPageQuery ) { progressService.UnlockProgress(progressId); return(RedirectToPreviousPage(delegateId, customisationId, accessedVia, returnPageQuery)); }
public EditSupervisorViewModel( int progressId, DelegateAccessRoute accessedVia, IEnumerable <AdminUser> supervisors, DelegateCourseInfo info, ReturnPageQuery?returnPageQuery ) : base(info, returnPageQuery) { ProgressId = progressId; AccessedVia = accessedVia; Supervisors = PopulateSupervisors(info.SupervisorAdminId, supervisors); }
public IActionResult Index(int progressId, DelegateAccessRoute accessedVia) { var courseDelegatesData = progressService.GetDetailedCourseProgress(progressId); var model = new DelegateProgressViewModel( accessedVia, courseDelegatesData !, configuration ); return(View(model)); }
private IActionResult RedirectToPreviousPage( int delegateId, int customisationId, DelegateAccessRoute accessedVia, ReturnPageQuery?returnPageQuery ) { if (accessedVia.Equals(DelegateAccessRoute.CourseDelegates)) { var routeData = returnPageQuery !.Value.ToRouteDataDictionary(); routeData.Add("customisationId", customisationId.ToString()); return(RedirectToAction("Index", "CourseDelegates", routeData, returnPageQuery.Value.ItemIdToReturnTo)); } return(RedirectToAction("Index", "ViewDelegate", new { delegateId })); }
public IActionResult AllLearningLogEntries( int progressId, DelegateAccessRoute accessedVia ) { var learningLog = courseService.GetLearningLogDetails(progressId); if (learningLog == null) { return(NotFound()); } var model = new AllLearningLogEntriesViewModel(learningLog.Entries); return(View(model)); }
public LearningLogViewModel( DelegateAccessRoute accessedVia, LearningLog learningLog, SearchSortFilterPaginationResult <LearningLogEntry> result ) : base(result, false) { AccessedVia = accessedVia; ProgressId = learningLog.DelegateCourseInfo.ProgressId; CustomisationId = learningLog.DelegateCourseInfo.CustomisationId; CourseName = learningLog.DelegateCourseInfo.CourseName; DelegateId = learningLog.DelegateCourseInfo.DelegateId; DelegateFirstName = learningLog.DelegateCourseInfo.DelegateFirstName; DelegateLastName = learningLog.DelegateCourseInfo.DelegateLastName; DelegateEmail = learningLog.DelegateCourseInfo.DelegateEmail; Entries = result.ItemsToDisplay.Select(entry => new LearningLogEntryViewModel(entry)); }
public IActionResult EditSupervisor( EditSupervisorFormData formData, int progressId, DelegateAccessRoute accessedVia ) { if (!ModelState.IsValid) { var supervisors = userService.GetSupervisorsAtCentre(User.GetCentreId()); var model = new EditSupervisorViewModel(formData, progressId, accessedVia, supervisors); return(View(model)); } progressService.UpdateSupervisor(progressId, formData.SupervisorId); return(RedirectToPreviousPage(formData.DelegateId, formData.CustomisationId, accessedVia, formData.ReturnPageQuery)); }
public IActionResult EditCompletionDate( int progressId, DelegateAccessRoute accessedVia, ReturnPageQuery?returnPageQuery ) { var delegateCourseProgress = progressService.GetDetailedCourseProgress(progressId); var model = new EditCompletionDateViewModel( progressId, accessedVia, delegateCourseProgress !, returnPageQuery ); return(View(model)); }
public RemoveFromCourseViewModel( DetailedCourseProgress progress, bool confirm, DelegateAccessRoute accessedVia, ReturnPageQuery?returnPageQuery ) { DelegateId = progress.DelegateId; Name = DisplayStringHelper.GetNonSortableFullNameForDisplayOnly( progress.DelegateFirstName, progress.DelegateLastName ); CustomisationId = progress.CustomisationId; ProgressId = progress.ProgressId; CourseName = progress.CourseName; Confirm = confirm; AccessedVia = accessedVia; ReturnPageQuery = returnPageQuery; }
public IActionResult EditCompletionDate( EditCompletionDateFormData formData, int progressId, DelegateAccessRoute accessedVia ) { if (!ModelState.IsValid) { var model = new EditCompletionDateViewModel(formData, progressId, accessedVia); return(View(model)); } var completionDate = formData.Year != null ? new DateTime(formData.Year.Value, formData.Month !.Value, formData.Day !.Value) : (DateTime?)null; progressService.UpdateCompletionDate(progressId, completionDate); return(RedirectToPreviousPage(formData.DelegateId, formData.CustomisationId, accessedVia, formData.ReturnPageQuery)); }
public EditDelegateCourseAdminFieldViewModel( EditDelegateCourseAdminFieldFormData formData, DelegateCourseInfo delegateCourseInfo, int progressId, int promptNumber, DelegateAccessRoute accessedVia ) : base(formData) { var courseAdminField = delegateCourseInfo.CourseAdminFields.Single(c => c.PromptNumber == promptNumber); Options = courseAdminField !.Options; Radios = GetRadioItems(delegateCourseInfo, promptNumber); PromptText = courseAdminField.PromptText; CourseName = delegateCourseInfo.CourseName; DelegateName = DisplayStringHelper.GetNonSortableFullNameForDisplayOnly( delegateCourseInfo.DelegateFirstName, delegateCourseInfo.DelegateLastName ); ProgressId = progressId; AccessedVia = accessedVia; }
public EditDelegateCourseAdminFieldViewModel( int progressId, int promptNumber, DelegateCourseInfo delegateCourseInfo, DelegateAccessRoute accessedVia, ReturnPageQuery?returnPageQuery = null ) : base(delegateCourseInfo, returnPageQuery) { var courseAdminField = delegateCourseInfo.CourseAdminFields.Single(c => c.PromptNumber == promptNumber); Options = courseAdminField.Options; Answer = delegateCourseInfo.GetAnswer(promptNumber); Radios = GetRadioItems(delegateCourseInfo, promptNumber); PromptText = courseAdminField.PromptText; CourseName = delegateCourseInfo.CourseName; DelegateName = DisplayStringHelper.GetNonSortableFullNameForDisplayOnly( delegateCourseInfo.DelegateFirstName, delegateCourseInfo.DelegateLastName ); ProgressId = progressId; AccessedVia = accessedVia; }
public IActionResult ConfirmRemoveFromCourse( int progressId, DelegateAccessRoute accessedVia, ReturnPageQuery?returnPageQuery = null ) { var progress = progressService.GetDetailedCourseProgress(progressId); if (!courseService.DelegateHasCurrentProgress(progressId) || progress == null) { return(new NotFoundResult()); } var model = new RemoveFromCourseViewModel( progress, false, accessedVia, returnPageQuery ); return(View(model)); }
public DelegateProgressViewModel( DelegateAccessRoute accessedVia, DetailedCourseProgress progress, IConfiguration config, ReturnPageQuery?returnPageQuery = null ) : base(progress, accessedVia, returnPageQuery) { IsCourseActive = progress.IsCourseActive; AdminFields = progress.CourseAdminFields.Select( cp => new DelegateCourseAdminField( cp.PromptNumber, cp.PromptText, cp.Answer ) ) .ToList(); ProgressDownloadUrl = OldSystemEndpointHelper.GetDownloadSummaryUrl(config, progress.ProgressId);; Sections = progress.Sections.Select(s => new SectionProgressViewModel(s)); }
public IActionResult EditSupervisor( int progressId, DelegateAccessRoute accessedVia, ReturnPageQuery?returnPageQuery ) { var centreId = User.GetCentreId(); var delegateCourseProgress = progressService.GetDetailedCourseProgress(progressId); var supervisors = userService.GetSupervisorsAtCentreForCategory( centreId, delegateCourseProgress !.CourseCategoryId ); var model = new EditSupervisorViewModel( progressId, accessedVia, supervisors, delegateCourseProgress, returnPageQuery ); return(View(model)); }