📄 paper.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
namespace ExaminationSystem.BLL.Domain
{
public class Paper:DomainObject<long>
{
public int ScoreValue
{
get
{
int scoreValue = 0;
foreach (QuestionContainer container in QuestionContainers)
scoreValue += container.ScoreValue;
return scoreValue;
}
}
public int Score
{
get
{
int score = 0;
foreach (QuestionContainer container in QuestionContainers)
score += container.Score;
return score;
}
}
private IList<QuestionContainer> containers = new List<QuestionContainer>();
public virtual IList<QuestionContainer> QuestionContainers
{
get { return containers; }
set { containers = value; }
}
private Student student;
public virtual Student Student
{
get { return student; }
set { student = value; }
}
private Examination examination;
public virtual Examination Examination
{
get { return examination; }
set { examination = value; }
}
public override int GetHashCode()
{
return (GetType().FullName + "|" +
Student.GetHashCode() + "|" +
Examination.GetHashCode()).GetHashCode();
}
public string GetPaperXML()
{
StringBuilder builder = new StringBuilder(3000);
builder.Append("<Paper PaperId=\""+this.ID+"\" Score=\"" + Score + "\" ScoreValue=\"" + ScoreValue + "\">");
builder.Append("<Student ID=\""+Student.ID+"\" StudentId=\"" + Student.StudentID + "\" Name=\"" + Student.Name + "\"/>");
builder.Append("<Examination Id=\""+Examination.ID+"\" Name=\"" + Examination.Name + "\" StartTime=\"" + Examination.StartTime + "\" EndTime=\"" + Examination.EndTime + "\"/>");
foreach (QuestionContainer container in QuestionContainers)
builder.Append(container.GetContainerXML());
builder.Append("</Paper>");
return builder.ToString();
}
public void AddQuestionContainer(QuestionContainer container)
{
QuestionContainers.Add(container);
container.Paper = this;
}
private bool isSubmited;
public virtual bool IsSubmited
{
get { return isSubmited; }
set { isSubmited = value; }
}
public bool IsScored
{
get
{
foreach (QuestionContainer c in QuestionContainers)
{
if (c.IsScored == false)
return false;
}
return true;
}
}
public void AutoScore()
{
foreach (QuestionContainer container in QuestionContainers)
{
foreach (Question quesiton in container.Questions)
{
if (quesiton.Content is DanXuanContent || quesiton.Content is DuoXuanContent || quesiton.Content is PanDuanContent)
{
if (quesiton.Content.Answer == quesiton.StudentAnswer)
{
quesiton.Score = quesiton.ScoreValue;
}
else
{
quesiton.Score = 0;
}
quesiton.IsScored = true;
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -