private static ConfigurationBlock AddConfiguration(Test test, ISpreadsheetWriter spreadsheetWriter)
        {
            var configurationBlock = new ConfigurationBlock(spreadsheetWriter.CurrentPosition,
                                                            test.StandardizationFactor,
                                                            test.MinimumGrade);

            spreadsheetWriter
            .NewLine()
            .NewLine();
            configurationBlock.Write(spreadsheetWriter);

            return(configurationBlock);
        }
Example #2
0
        public void Write(ISpreadsheetWriter spreadsheetWriter)
        {
            spreadsheetWriter.CurrentPosition = StartPoint;
            spreadsheetWriter
            .SetFontBold(true)
            .Write("Configuratie");

            spreadsheetWriter
            .NewLine()
            .Write("Normering")
            .SetFontBold(false)
            .MoveRight()
            .Write(StandardizationFactor.Value);
            StandardizationfactorPosition = spreadsheetWriter.CurrentPosition;

            spreadsheetWriter
            .NewLine()
            .SetFontBold(true)
            .Write("Minimale cijfer")
            .SetFontBold(false)
            .MoveRight()
            .Write(MinimumGrade.Value);
            MinimumGradePosition = spreadsheetWriter.CurrentPosition;
        }
        public async Task <Application.Models.Spreadsheet.SaveResult> CreateTestResultsSpreadsheetAsync(Class @class, Test test, Application.Models.Spreadsheet.Metadata metadata)
        {
            var libraryMetadata = metadata.MapToLibraryModel();
            ISpreadsheetFile   spreadsheetFile   = _spreadsheetFileFactory.Create(_locationProvider.GetSpreadsheetDirectoryPath().Value, libraryMetadata);
            ISpreadsheetWriter spreadsheetWriter = spreadsheetFile.GetSpreadsheetWriter();

            AddTitle(test, metadata, spreadsheetWriter);
            spreadsheetWriter.NewLine();

            var configurationBlock = AddConfiguration(test, spreadsheetWriter);

            PrintScoreSheet(
                @class,
                test,
                spreadsheetWriter,
                configurationBlock);

            SaveResult saveResult = await spreadsheetFile.SaveAsync();

            return(saveResult.MapToModel());
        }
        private void PrintScoreSheet(
            Class @class,
            Test test,
            ISpreadsheetWriter spreadsheetWriter,
            ConfigurationBlock configurationBlock)
        {
            spreadsheetWriter
            .NewLine()
            .NewLine();

            var assignmentsBlock = new AssignmentsBlock(spreadsheetWriter.CurrentPosition,
                                                        test.Assignments,
                                                        test.NumberOfVersions);

            assignmentsBlock.Write(spreadsheetWriter);

            spreadsheetWriter.CurrentPosition = assignmentsBlock.ScoresHeaderPosition;
            spreadsheetWriter.MoveRight();
            int studentNamesStartColumn = spreadsheetWriter.CurrentPosition.X;
            var studentNamesBlock       = new StudentNamesBlock(spreadsheetWriter.CurrentPosition, @class.Students, assignmentsBlock.LastQuestionRow);

            studentNamesBlock.Write(spreadsheetWriter);

            spreadsheetWriter.CurrentPosition = new Point(spreadsheetWriter.CurrentPosition.X, assignmentsBlock.LastQuestionRow);
            spreadsheetWriter.NewLine();

            var scoresTopRow = new Point(assignmentsBlock.ScoresHeaderPosition.X, assignmentsBlock.ScoresHeaderPosition.Y + 1);

            AddTotalPointsRow(spreadsheetWriter,
                              scoresTopRow,
                              @class.Students.Count);
            var achievedScoresRow = spreadsheetWriter.CurrentPosition.Y;

            spreadsheetWriter.NewLine();

            var numberOfStudents = @class.Students.Count;

            AddGradesRow(spreadsheetWriter,
                         achievedScoresRow,
                         assignmentsBlock.ScoresHeaderPosition.X,
                         new Point(assignmentsBlock.ScoresHeaderPosition.X, achievedScoresRow),
                         configurationBlock.MinimumGradePosition,
                         configurationBlock.StandardizationfactorPosition,
                         numberOfStudents,
                         _formulaBuilderFactory);
            var gradesRow = spreadsheetWriter.CurrentPosition.Y;

            spreadsheetWriter.NewLine();
            spreadsheetWriter.NewLine();

            AddAverageResults(
                spreadsheetWriter,
                achievedScoresRow,
                gradesRow,
                studentNamesStartColumn,
                numberOfStudents);

            var borderBlock = new BorderBlock(
                assignmentsBlock.ScoresHeaderPosition.Y,
                assignmentsBlock.AssignmentBottomRows,
                achievedScoresRow,
                gradesRow,
                studentNamesBlock.MostOuterColumn);

            borderBlock.Write(spreadsheetWriter);
        }