48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
using CRM.Core.Model.Entity;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using WX.CRM.Common;
|
|
|
|
namespace CRM.Core.BLL.Exam
|
|
{
|
|
public class EXAM_PAPER_BL : DbContextRepository<EXAM_PAPER>
|
|
{
|
|
public bool HandExamPaper(int paperId, Dictionary<int, string> answerList)
|
|
{
|
|
using (var db = new zxdContext())
|
|
{
|
|
LogHelper.Info("paperId:" + paperId.ToString());
|
|
var paper = db.EXAM_PAPER.FirstOrDefault(p => p.ID == paperId);
|
|
if (paper == null)
|
|
{
|
|
return false;
|
|
}
|
|
//如果已经交过卷,直接返回
|
|
if (paper.HANDTIME.HasValue)
|
|
return true;
|
|
paper.HANDTIME = DateTime.Now;
|
|
paper.USETIME = (paper.HANDTIME - paper.STARTTIME).Value.Seconds;
|
|
|
|
var paperSubject = db.EXAM_PAPERSUBJECT.Where(p => p.PAPERID == paper.ID);
|
|
var score = 0;
|
|
foreach (var item in paperSubject)
|
|
{
|
|
var answer = answerList.FirstOrDefault(p => p.Key == item.ID).Value;
|
|
if (item.RIGHTANSWER == answer)
|
|
{
|
|
score++;
|
|
}
|
|
item.ANSWER = answer;
|
|
}
|
|
|
|
paper.SCORE = score;
|
|
|
|
db.SaveChanges();
|
|
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
}
|