Ejemplo n.º 1
0
        public void Write(ISpreadsheetWriter spreadsheetWriter)
        {
            spreadsheetWriter.CurrentPosition = StartPoint;
            spreadsheetWriter
            .SetFontBold(true)
            .SetBorder(BorderStyle.Double, BorderDirection.Bottom, Color.Black)
            .Write("Totaal")
            .SetFontBold(false);

            int columnsBetweenFirstPoint = ScoreTopPoint.X - spreadsheetWriter.CurrentPosition.X;

            for (int i = 0; i < columnsBetweenFirstPoint; i++)
            {
                spreadsheetWriter.MoveRight();
                spreadsheetWriter.Write(string.Empty);
            }

            const int maximumPointsColumn  = 1;
            int       numberOfScoreColumns = NumberOfStudents + maximumPointsColumn;

            for (int columnIndex = 0; columnIndex < numberOfScoreColumns; columnIndex++)
            {
                var startPosition         = new Point(spreadsheetWriter.CurrentPosition.X, ScoreTopPoint.Y);
                var lastQuestionRowOffset = 1;
                var endPosition           = new Point(spreadsheetWriter.CurrentPosition.X, spreadsheetWriter.CurrentPosition.Y - lastQuestionRowOffset);
                spreadsheetWriter
                .PlaceStandardFormula(startPosition, endPosition, FormulaType.SUM)
                .MoveRight();
            }
        }
Ejemplo n.º 2
0
        public void Write(ISpreadsheetWriter spreadsheetWriter)
        {
            spreadsheetWriter.CurrentPosition = StartPosition;
            spreadsheetWriter
            .SetFontBold(true)
            .SetBorder(BorderStyle.Double, BorderDirection.Bottom, Color.Black)
            .Write("Cijfer")
            .SetFontBold(false);

            int columnsBetweenFirstPoint = ScoresStartColumn - spreadsheetWriter.CurrentPosition.X;

            for (int i = 0; i < columnsBetweenFirstPoint; i++)
            {
                spreadsheetWriter.MoveRight();
                spreadsheetWriter.Write(string.Empty);
            }

            ICellRange maximumScoreCell          = spreadsheetWriter.GetCellRange(MaximumScorePosition);
            ICellRange standardizationFactorCell = spreadsheetWriter.GetCellRange(StandardizationFactorPosition);
            ICellRange minimumGradeCell          = spreadsheetWriter.GetCellRange(MinimumGradePosition);

            const int maximumPointsColumn  = 1;
            int       numberOfScoreColumns = NumberOfStudents + maximumPointsColumn;

            spreadsheetWriter.SetFormat("0.0");
            for (int columnIndex = 0; columnIndex < numberOfScoreColumns; columnIndex++)
            {
                var        achievedScorePosition = new Point(spreadsheetWriter.CurrentPosition.X, AchievedScoresRow);
                ICellRange achievedScoreCell     = spreadsheetWriter.GetCellRange(achievedScorePosition);

                spreadsheetWriter
                .PlaceLessThanRule(5.5, Color.Red)
                .PlaceCustomFormula(SetupGradeFormula(achievedScoreCell,
                                                      maximumScoreCell,
                                                      standardizationFactorCell,
                                                      minimumGradeCell))
                .MoveRight();
            }
            spreadsheetWriter.ResetStyling();
        }
Ejemplo n.º 3
0
        public void Write(ISpreadsheetWriter spreadsheetWriter)
        {
            spreadsheetWriter.CurrentPosition = StartPoint;
            var questionNamesCollumns = NumberOfVersions;

            spreadsheetWriter
            .SetBorder(BorderStyle.Thin, BorderDirection.Bottom, Color.Black)
            .SetHorizontalAlignment(HorizontalAlignment.Center)
            .SetFontBold(true)
            .Write("Opgave");

            for (int i = 0; i < questionNamesCollumns; i++)
            {
                spreadsheetWriter.MoveRight();
                spreadsheetWriter.Write(string.Empty);
            }
            spreadsheetWriter
            .Write("Punten")
            .ResetStyling();
            ScoresHeaderPosition = spreadsheetWriter.CurrentPosition;

            LastQuestionRow = PrintAssignments(spreadsheetWriter);
        }
        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);
        }