Example #1
0
        public void Write(ISpreadsheetWriter spreadsheetWriter)
        {
            spreadsheetWriter.CurrentPosition = StartPosition;

            var scoresStartPosition = new Point(StartOfStudentsColumn, AchievedScoresRow);
            var scoresEndPosition   = new Point(StartOfStudentsColumn + NumberOfStudents, AchievedScoresRow);

            spreadsheetWriter
            .SetFontBold(true)
            .Write("Gemiddelde aantal punten")
            .SetFontBold(false)
            .MoveRight()
            .PlaceStandardFormula(scoresStartPosition, scoresEndPosition, FormulaType.AVERAGE)
            .NewLine();

            var gradesStartPosition = new Point(StartOfStudentsColumn, GradesRow);
            var gradesEndPosition   = new Point(StartOfStudentsColumn + NumberOfStudents, GradesRow);

            spreadsheetWriter
            .SetFontBold(true)
            .Write("Gemiddelde cijfer")
            .SetFontBold(false)
            .MoveRight()
            .PlaceStandardFormula(gradesStartPosition, gradesEndPosition, FormulaType.AVERAGE);
        }
Example #2
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();
            }
        }
Example #3
0
 private static void WriteHeaderRow(ISpreadsheetWriter writer, IList <DisplayField> transactionColumns)
 {
     foreach (var column in transactionColumns)
     {
         writer.WriteField(column.GetHeaderValue());
     }
     writer.NextRecord();
 }
Example #4
0
 private static void WriteTransaction(ISpreadsheetWriter writer, SqlLedgerEntry transaction, IEnumerable <DisplayField> transactionColumns)
 {
     foreach (var column in transactionColumns)
     {
         writer.WriteField(column.GetDisplayValue(transaction));
     }
     writer.NextRecord();
 }
Example #5
0
        public void ResetStyling_WithValidWriter_ReturnsInstanceOfSut()
        {
            // Arrange
            // Act
            ISpreadsheetWriter result = _sut.ResetStyling();

            // Assert
            result.Should().Be(_sut);
        }
Example #6
0
        public void SetFontBold_WithValidValue_ReturnsInstanceOfSut()
        {
            // Arrange
            bool value = _fixture.Create <bool>();

            // Act
            ISpreadsheetWriter result = _sut.SetFontBold(value);

            // Assert
            result.Should().Be(_sut);
        }
        private static void AddTotalPointsRow(ISpreadsheetWriter spreadsheetWriter,
                                              Point scorePointTop,
                                              int numberOfStudents)
        {
            var totalPointsBlock = new TotalScoresBlock(
                spreadsheetWriter.CurrentPosition,
                scorePointTop,
                numberOfStudents);

            totalPointsBlock.Write(spreadsheetWriter);
        }
Example #8
0
        public void SetFontColor_WithValidColor_ReturnsInstanceOfSut()
        {
            // Arrange
            Color value = _fixture.Create <Color>();

            // Act
            ISpreadsheetWriter result = _sut.SetFontColor(value);

            // Assert
            result.Should().Be(_sut);
        }
Example #9
0
        public void SetFontSize_WithValidSize_ReturnsInstanceOfSut()
        {
            // Arrange
            float value = _fixture.Create <float>();

            // Act
            ISpreadsheetWriter result = _sut.SetFontSize(value);

            // Assert
            result.Should().Be(_sut);
        }
Example #10
0
        public void SetTextRotation_WithValidRotation_ReturnsInstanceOfSut()
        {
            // Arrange
            int value = 10;

            // Act
            ISpreadsheetWriter result = _sut.SetTextRotation(value);

            // Assert
            result.Should().Be(_sut);
        }
Example #11
0
        public void SetFormat_WithValidFormat_ReturnsInstanceOfSut()
        {
            // Arrange
            string value = _fixture.Create <string>();

            // Act
            ISpreadsheetWriter result = _sut.SetFormat(value);

            // Assert
            result.Should().Be(_sut);
        }
Example #12
0
        public void PlaceStandardFormula_WithValidValue_ReturnsInstanceOfSut()
        {
            // Arrange
            var startPosition = new Point(_fixture.Create <short>(), _fixture.Create <short>());
            var endPosition   = new Point(_fixture.Create <short>(), _fixture.Create <short>());
            var formulaType   = _fixture.Create <FormulaType>();

            // Act
            ISpreadsheetWriter result = _sut.PlaceStandardFormula(startPosition, endPosition, formulaType);

            // Assert
            result.Should().Be(_sut);
        }
        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);
        }
        public ExcelFile(string fileLocation, Metadata metadata)
        {
            var fileInfo = new FileInfo(fileLocation);

            _excelPackage = new ExcelPackage(fileInfo);
            _excelPackage.Workbook.Properties.Author  = metadata.Author;
            _excelPackage.Workbook.Properties.Title   = metadata.Title;
            _excelPackage.Workbook.Properties.Subject = metadata.Subject;
            _excelPackage.Workbook.Properties.Created = metadata.Created;

            ExcelWorksheet worksheet = _excelPackage.Workbook.Worksheets.Add(metadata.Title);

            _writer = new ExcelSpreadsheetWriter(worksheet);
        }
Example #15
0
        public void PlaceCustomFormula_WithValidValue_ReturnsInstanceOfSut()
        {
            // Arrange
            var expectedFormula = _fixture.Create <string>();
            var formulaBuilder  = new Mock <IFormulaBuilder>();

            formulaBuilder.Setup(x => x.Build())
            .Returns(expectedFormula);

            // Act
            ISpreadsheetWriter result = _sut.PlaceCustomFormula(formulaBuilder.Object);

            // Assert
            result.Should().Be(_sut);
        }
        private static void AddAverageResults(ISpreadsheetWriter spreadsheetWriter,
                                              int achievedScoresRow,
                                              int gradesRow,
                                              int scoresStartColumn,
                                              int numberOfStudents)
        {
            var averagesBlock = new StatisticsBlock(
                spreadsheetWriter.CurrentPosition,
                achievedScoresRow,
                gradesRow,
                scoresStartColumn,
                numberOfStudents);

            averagesBlock.Write(spreadsheetWriter);
        }
Example #17
0
        public void PlaceCustomFormula_WithFormulaBuilder_PlacesFormulaToCurrentCell()
        {
            // Arrange
            var expectedFormula = _fixture.Create <string>();
            var formulaBuilder  = new Mock <IFormulaBuilder>();

            formulaBuilder.Setup(x => x.Build())
            .Returns(expectedFormula);

            // Act
            ISpreadsheetWriter result = _sut.PlaceCustomFormula(formulaBuilder.Object);

            // Assert
            var cell = _worksheet.GetCell(_sut.CurrentPosition);

            cell.Formula.Should().Be(expectedFormula);
        }
Example #18
0
 public void Write(ISpreadsheetWriter spreadsheetWriter)
 {
     spreadsheetWriter.CurrentPosition = StartPoint;
     spreadsheetWriter
     .SetFontSize(TitleSize)
     .Write(TestName.Value)
     .ResetStyling()
     .NewLine()
     .SetFontBold(true)
     .Write("Gemaakt op:")
     .SetFontBold(false)
     .MoveRight()
     .Write(CreatedOn.ToString(DateFormat))
     .NewLine()
     .Write("Cifra:")
     .MoveRight()
     .Write(ApplicationVersion);
 }
Example #19
0
        public void Setup()
        {
            var data = GetData(RowSize);

            documentWriter = Spreadsheet
                             .New()
                             .WithSheet(
                Specification.Sheet()
                .WithName("benchmark")
                .WithRows(data, (item, index) => Specification
                          .Row()
                          .OnIndex(index)
                          .WithCell(Specification.Cell().OnColumn(1).WithContent(item.Text))
                          .WithCell(Specification.Cell().OnColumn(2).WithContent(item.Number))
                          .WithCell(Specification.Cell().OnColumn(3).WithContent(item.Money))
                          .WithCell(Specification.Cell().OnColumn(4).WithContent(item.Date))
                          ));
        }
Example #20
0
        public void Write(ISpreadsheetWriter spreadsheetWriter)
        {
            for (int index = HeaderRow; index < TotalRow; index++)
            {
                var y = index + 1;

                for (int columnIndex = 1; columnIndex <= MostRightColumn; columnIndex++)
                {
                    spreadsheetWriter.CurrentPosition = new Point(columnIndex, y);
                    spreadsheetWriter.SetHorizontalAlignment(HorizontalAlignment.Center);

                    if (AssignmentBottomRows.Contains(y))
                    {
                        spreadsheetWriter.SetBorder(BorderStyle.Thin, BorderDirection.Bottom, Color.Black);
                    }
                    spreadsheetWriter.ApplyStyling();
                    spreadsheetWriter.ResetStyling();
                }
            }
        }
        private static void AddGradesRow(ISpreadsheetWriter spreadsheetWriter,
                                         int achievedScoresRow,
                                         int scoresStartColumn,
                                         Point maximumPointsPosition,
                                         Point minimumGradePosition,
                                         Point standardizationfactorPosition,
                                         int numberOfStudents,
                                         IFormulaBuilderFactory formulaBuilderFactory)
        {
            var totalPointsBlock = new GradesBlock(
                spreadsheetWriter.CurrentPosition,
                formulaBuilderFactory,
                achievedScoresRow,
                scoresStartColumn,
                maximumPointsPosition,
                standardizationfactorPosition,
                minimumGradePosition,
                numberOfStudents);

            totalPointsBlock.Write(spreadsheetWriter);
        }
        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());
        }
Example #23
0
        private int PrintAssignments(ISpreadsheetWriter spreadsheetWriter)
        {
            int lastQuestionRow  = 0;
            var totalAssignments = TotalAssignments.Count();

            for (int assignmentIndex = 0; assignmentIndex < totalAssignments; assignmentIndex++)
            {
                Assignment assignment = TotalAssignments.ElementAt(assignmentIndex);

                spreadsheetWriter.MoveDownTimes(assignment.NumberOfQuestions);
                AssignmentBottomRows.Add(spreadsheetWriter.CurrentPosition.Y);

                bool isLastAssignmentReached = assignmentIndex == totalAssignments - 1;
                if (isLastAssignmentReached)
                {
                    lastQuestionRow = spreadsheetWriter.CurrentPosition.Y;
                }
            }

            return(lastQuestionRow);
        }
Example #24
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();
        }
Example #25
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);
        }
Example #26
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;
        }
Example #27
0
        public void Write(ISpreadsheetWriter spreadsheetWriter)
        {
            spreadsheetWriter.CurrentPosition = StartPoint;
            IOrderedEnumerable <Student> orderedStudents = Students
                                                           .OrderBy(x => x.LastName.Value);

            foreach (Student student in orderedStudents)
            {
                var nameBuilder = new StringBuilder(student.FirstName.Value);
                if (student.Infix != null)
                {
                    nameBuilder.Append(' ');
                    nameBuilder.Append(student.Infix);
                }
                nameBuilder.Append(' ');
                nameBuilder.Append(student.LastName.Value);

                spreadsheetWriter
                .SetTextRotation(40)
                .SetBorder(BorderStyle.Thin, BorderDirection.Bottom, Color.Black)
                .SetHorizontalAlignment(HorizontalAlignment.Center)
                .Write(nameBuilder.ToString())
                .ResetStyling();

                for (int i = 0; i < _lastQuestionRow; i++)
                {
                    spreadsheetWriter
                    .MoveDown()
                    .SetHorizontalAlignment(HorizontalAlignment.Center)
                    .Write(string.Empty);
                }

                spreadsheetWriter.CurrentPosition = new Point(spreadsheetWriter.CurrentPosition.X + 1, StartPoint.Y);
            }
            MostOuterColumn = spreadsheetWriter.CurrentPosition.X;
        }
Example #28
0
 private static void WriteTransactions(IEnumerable <SqlLedgerEntry> transactions, IList <DisplayField> columns, ISpreadsheetWriter writer)
 {
     foreach (var transaction in transactions)
     {
         WriteTransaction(writer, transaction, columns);
     }
 }
        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);
        }
Example #30
0
 private static void WriteDescriptionRow(ISpreadsheetWriter writer, string description)
 {
     writer.WriteField(description);
     writer.NextRecord();
 }