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);
        }
Exemple #2
0
        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})"
                    );
            }
        }