예제 #1
0
        public static AssessmentInformationForm FromAssessmentInfo(AssessmentInformation assessmentInfo)
        {
            AssessmentInformationForm aif = new AssessmentInformationForm();

            aif.AssessmentName      = assessmentInfo.AssessmentName;
            aif.Author              = assessmentInfo.Author;
            aif.AssessmentWeighting = assessmentInfo.AssessmentWeighting;
            return(aif);
        }
예제 #2
0
        private void DisplayInformation(AssessmentScript a)
        {
            //Show the assessment info. This will always be present
            if (a.AssessmentInfo != null)
            {
                AssessmentInformation ai = a.AssessmentInfo;

                if (!ai.AssessmentName.NullOrEmpty())
                {
                    lblAssessmentName.Text = ai.AssessmentName;
                }
                else
                {
                    lblAssessmentName.Text = "Assessment";
                }

                if (!ai.Author.NullOrEmpty())
                {
                    lblAuthor.Text = $"Author: {ai.Author}";
                }
                else
                {
                    lblAuthor.Text = "";
                }

                lblWeighting.Text = ai.AssessmentWeighting > 0 ? $"{ai.AssessmentWeighting}%" : "";
            }

            //Show the course info. This will only be present if the assessment has been published.
            if (a.CourseInformation != null)
            {
                CourseInformation c = a.CourseInformation;
                if (!c.CourseCodeFull.NullOrEmpty())
                {
                    lblCourseCode.Text = c.CourseCodeFull;
                }
                else
                {
                    lblCourseCode.Text = "";
                }

                if (!c.CourseName.NullOrEmpty())
                {
                    lblCourseName.Text = c.CourseName;
                }
                else
                {
                    lblCourseName.Text = "Unkown course";
                }
            }
            //Enable the information panel
            pnlInformation.Enabled = true;
            pnlInformation.Visible = true;
        }
예제 #3
0
 public AssessmentSession(string courseID, string deploymentTarget, AssessmentInformation assessmentInfo, string assessmentFileName, DateTime startTime, int assessmentLength, int readingTime, string restartPassword, List <StudentData> studentData, List <string> additionalFiles, DateTime deploymentTime, Assessment assessment)
 {
     this.assessmentInfo     = assessmentInfo;
     this.assessmentFileName = assessmentFileName;
     this.courseID           = courseID;
     this.deploymentTarget   = deploymentTarget;
     this.startTime          = startTime;
     this.assessmentLength   = assessmentLength;
     this.readingTime        = readingTime;
     this.restartPassword    = restartPassword;
     this.studentData        = studentData;
     this.additionalFiles    = additionalFiles;
     this.deploymentTime     = deploymentTime;
     this.assessment         = assessment;
 }
예제 #4
0
        public static AssessmentScript BuildForPublishing(Assessment assessment, StudentData data, AssessmentInformation info)
        {
            AssessmentScript script = BuildFromAssessment(assessment);

            //Set the data
            script.studentData    = data;
            script.AssessmentInfo = info;
            script.timeData       = data.GenerateTimeData();
            script.published      = true;
            return(script);
        }
예제 #5
0
        public bool MakePDF(string filePath)
        {
            Document doc               = new Document();
            bool     successful        = true;
            AssessmentInformation info = smd.Scripts.First().Script.AssessmentInfo;

            try
            {
                FileStream fs = new FileStream(filePath, FileMode.Create);

                PdfWriter.GetInstance(doc, fs);
                doc.Open();

                //Do author
                if (!info.Author.NullOrEmpty())
                {
                    string    authorText = $"Author: {info.Author}";
                    Paragraph authorPara = new Paragraph(authorText, AuthorFont);
                    authorPara.Add(new Chunk(new VerticalPositionMark()));
                    authorPara.Add(new Chunk($"{smd.StudentData.FirstName} {smd.StudentData.LastName} - {smd.StudentData.StudentID}"));
                    doc.Add(authorPara);
                }


                //Do title
                Paragraph titlePara = new Paragraph(info.AssessmentName, TitleFont);
                titlePara.SetAlignment(Center);
                titlePara.SpacingAfter = 5f;
                doc.Add(titlePara);

                //Do weighting
                Paragraph weightingPara = new Paragraph($"{info.AssessmentWeighting}%", WeightingFont);
                weightingPara.SetAlignment(Center);
                weightingPara.SpacingAfter = 5f;
                doc.Add(weightingPara);

                Paragraph linePara = new Paragraph(new Chunk(new LineSeparator(0.0f, 100f, Color.BLACK, Element.ALIGN_LEFT, 1)));
                linePara.SpacingAfter = 15f;
                doc.Add(linePara);

                //Do each question
                DoQuestions(smd.MarkingQuestions, doc);

                //Show marks for assessment
                Paragraph totalMarksPara = new Paragraph("");
                totalMarksPara.Add(new Chunk(new VerticalPositionMark()));
                Paragraph totalPhrase = new Paragraph($"Final result: {smd.FinalMark.ToString("0.#")} / {smd.TotalAvailableMarks}", TotalMarksFont);
                totalPhrase.SetAlignment(Right);
                totalMarksPara.Add(totalPhrase);
                totalMarksPara.SpacingBefore = 10f;
                doc.Add(totalMarksPara);

                Paragraph percentPara = new Paragraph("");
                percentPara.Add(new Chunk(new VerticalPositionMark()));
                Paragraph percentPhrase = new Paragraph($"{((smd.FinalMark / smd.TotalAvailableMarks) * 100).ToString("00.0")}%", TotalMarksFont);
                percentPhrase.SetAlignment(Right);
                percentPara.Add(percentPhrase);
                doc.Add(percentPara);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error creating pdf");
                successful = false;
            }
            finally
            {
                doc.Close();
            }

            return(successful);
        }
예제 #6
0
 public static void PopulateAssessmentInformation(AssessmentInformation assessmentInfo, AssessmentInformationForm aif)
 {
     assessmentInfo.AssessmentName      = aif.AssessmentName;
     assessmentInfo.Author              = aif.Author;
     assessmentInfo.AssessmentWeighting = (int)aif.AssessmentWeighting;
 }