private static void AddDelegateToDataTable( DataTable dataTable, CourseDelegateForExport courseDelegate, CentreRegistrationPrompts registrationRegistrationPrompts, CourseAdminFields adminFields ) { var row = dataTable.NewRow(); SetCommonRowValues(dataTable, courseDelegate, registrationRegistrationPrompts, row); foreach (var prompt in adminFields.AdminFields) { if (dataTable.Columns.Contains($"{prompt.PromptText} (Prompt {prompt.PromptNumber})")) { row[$"{prompt.PromptText} (Prompt {prompt.PromptNumber})"] = courseDelegate.DelegateCourseAdminFields[prompt.PromptNumber - 1]; } else { row[prompt.PromptText] = courseDelegate.DelegateCourseAdminFields[prompt.PromptNumber - 1]; } } dataTable.Rows.Add(row); }
private static int?GetNextPromptNumber(CourseAdminFields courseAdminFields) { var existingPromptNumbers = courseAdminFields.AdminFields .Select(c => c.CustomPromptNumber); var promptNumbers = new List <int> { 1, 2, 3 }; var unusedPromptNumbers = promptNumbers.Except(existingPromptNumbers).ToList(); return(unusedPromptNumbers.Any() ? unusedPromptNumbers.Min() : (int?)null); }
EditDelegateCourseAdminField_GET_returns_not_found_if_no_course_admin_field_corresponds_to_prompt_number() { // Given const int validPromptNumber = 1; const int invalidPromptNumber = 2; const string promptText = "Prompt text"; const string options = "Answer"; var courseAdminFieldWithAnswer = new CourseAdminFieldWithAnswer( validPromptNumber, promptText, options, options ); var delegateCourseInfo = new DelegateCourseInfo { CourseAdminFields = new List <CourseAdminFieldWithAnswer> { courseAdminFieldWithAnswer } }; var delegateCourseDetails = new DetailedCourseProgress( new Progress(), new List <DetailedSectionProgress>(), delegateCourseInfo ); var courseAdminField = new CourseAdminField(validPromptNumber, promptText, options); var courseAdminFieldsForCourse = new CourseAdminFields( CustomisationId, new List <CourseAdminField> { courseAdminField } ); A.CallTo(() => progressService.GetDetailedCourseProgress(ProgressId)) .Returns(delegateCourseDetails); A.CallTo(() => courseAdminFieldsService.GetCourseAdminFieldsForCourse(CustomisationId)) .Returns(courseAdminFieldsForCourse); // When var result = delegateProgressController.EditDelegateCourseAdminField( invalidPromptNumber, ProgressId, DelegateAccessRoute.CourseDelegates ); // Then result.Should().BeNotFoundResult(); }
private static void SetUpDataTableColumns( CentreRegistrationPrompts registrationRegistrationPrompts, CourseAdminFields adminFields, DataTable dataTable ) { SetUpCommonDataTableColumns(registrationRegistrationPrompts, dataTable); foreach (var prompt in adminFields.AdminFields) { dataTable.Columns.Add( !dataTable.Columns.Contains(prompt.PromptText) ? prompt.PromptText : $"{prompt.PromptText} (Prompt {prompt.PromptNumber})" ); } }