using System;
using System.Collections.Generic;
using System.Text;
using Song.Entities;
using System.Data;
namespace Song.ServiceInterfaces
{
///
/// 考试管理
///
public interface IExamination : WeiSha.Common.IBusinessInterface
{
#region 考试管理
/// 添加
///
/// 业务实体
int ExamAdd(Examination entity);
///
/// 整体添加
///
/// 考试主题
/// 考试的场次
/// 参考人员的范围
void ExamAdd(Examination theme, List items, List groups);
///
/// 修改
///
/// 业务实体
void ExamSave(Examination entity);
///
/// 整体修改
///
/// 考试主题
/// 考试的场次
/// 参考人员的范围
void ExamSave(Examination theme, List items, List groups);
///
/// 删除,按主键ID;
///
/// 实体的主键
void ExamDelete(int identify);
///
/// 获取单一实体对象,按主键ID;此处获取的是考试主题或场次
///
/// 实体的主键
///
Examination ExamSingle(int identify);
///
/// 获取单一实体对象,通过全局唯一值,此处获取的是考试主题
///
///
///
Examination ExamSingle(string uid);
///
/// 获取单一实体对象,取最近一次考试;此处获取的是考试主题或场次
///
///
Examination ExamLast();
///
/// 获取当前考试的考试项目
///
///
///
Examination[] ExamItem(string uid);
Examination[] ExamItem(int id);
///
/// 当前考试主题关联的学生分类
///
///
///
StudentSort[] GroupForStudentSort(string uid);
///
/// 获取考试,不分页
///
///
///
///
List ExamCount(int orgid, bool? isUse, int count);
///
/// 获取当前学生要参加的考试
///
/// 时间范围查询的开始时间
/// 时间范围查询的结束时间
///
List GetSelfExam(int stid, DateTime? start, DateTime? end);
List GetCountExam(int stid, DateTime? start, DateTime? end, bool? isUse, int count);
///
/// 判断某个考试是否允许某个学生参加
///
/// 考试id
/// 学生id
///
bool ExamIsForStudent(int examid, int stid);
///
/// 获取指定时间内容的考试
///
/// 时间区间检索的开始时间
/// 时间区间检索的末尾时间
///
///
///
///
///
///
Examination[] GetPager(int orgid, DateTime? start, DateTime? end, bool? isUse, string searName, int size, int index, out int countSum);
///
/// 获取当前学生参加的的考试
///
///
/// 学科id
///
///
///
///
///
///
ExamResults[] GetAttendPager(int stid, int sbjid, int orgid, string sear, int size, int index, out int countSum);
#endregion
#region 考试成绩提交等
///
/// 添加考试答题信息
///
///
ExamResults ResultAdd(ExamResults result);
///
/// 保存考试答题信息
///
///
void ResultSave(ExamResults result);
///
/// 成绩提交
///
///
void ResultSubmit(ExamResults result);
///
/// 计算成绩并保存
///
///
///
Song.Entities.ExamResults ClacScore(ExamResults result);
///
/// 删除考试成绩
///
/// 成绩记录的id
void ResultDelete(int id);
///
/// 删除某个学生的某个考试的成绩
///
/// 学员账号id
/// 考试id
void ResultDelete(int stid, int examid);
///
/// 获取最新的答题信息(临时信息)
///
/// 考试id
/// 试卷id
/// 考生id
///
ExamResultsTemp ExamResultsTempSingle(int examid, int tpid, int stid);
///
/// 获取最新的答题信息(正式答题信息)
///
/// 考试id
/// 试卷id
/// 考生id
///
ExamResults ResultSingle(int examid, int tpid, int acid);
///
/// 从缓存中获取考试答题信息
///
///
///
///
///
ExamResults ResultSingleForCache(int examid, int tpid, int acid);
///
/// 获取当前考试的所有考生答题信息
///
///
///
///
ExamResults[] ResultCount(int examid, int count);
///
/// 当前考试信息中,下一个
///
///
///
/// 是否是人工判卷过的,false下一个未判卷的信息
///
ExamResults ResultSingleNext(int examid, int stid, bool? isCorrect);
///
/// 通过答案id获取答题信息(正式答题信息)
///
///
///
ExamResults ResultSingle(int exrid);
///
/// 通过学员ID与考试ID,获取成绩(最好成绩)
///
///
///
///
ExamResults ResultSingle(int accid, int examid);
///
/// 计算当前考试结果的成绩
///
///
///
ExamResults ResultClacScore(ExamResults resu);
///
/// 根据答题信息,获取试题(针对答题过程中死机,又上线时)
///
///
///
List QuesForResults(string results);
#endregion
#region 成绩统计
///
/// 考试主题下的所有参考人员成绩
///
///
///
DataTable Result4Theme(int id);
///
/// 考试主题下的所有参考人员的班组
///
///
///
StudentSort[] StudentSort4Theme(int id);
///
/// 考试主题下的所有参考人员成绩
///
/// 当前考试主题的ID
/// 学生分组的id,为0时取所有,为-1时取不在组的学员,大于0则取当前组学员
///
DataTable Result4Theme(int examid, int stsid);
///
/// 考试主题下的所有参考人员成绩
///
/// 当前考试主题的ID
/// 学生分组的id,为0时取所有,为-1时取不在组的学员,大于0则取当前组学员
///
DataTable Result4Theme(int examid, string stsid);
///
/// 考试主题下的所有参考人员成绩
///
///
/// 学生分组的id,为0时取所有,为-1时取不在组的学员,大于0则取当前组学员
/// 是否取所有人员(含缺考人员),false为仅参考人员
///
DataTable Result4Theme(int id, int stsid, bool isAll);
///
/// 当前考试主题下的各学员分组成绩排行
///
///
///
DataTable Result4StudentSort(int examid);
///
/// 计算某个考试主题的及格率
///
///
///
double PassRate4Theme(string uid);
///
/// 计算某场考试的及极率
///
///
///
double PassRate4Exam(Examination exam);
///
/// 计算某个考试主题的平均分
///
///
///
double Avg4Theme(string uid);
///
/// 计算某场考试的平均分
///
///
///
double Avg4Exam(int examid);
///
/// 当前考试的参考人数
///
///
///
int Number4Exam(int examid);
///
/// 当前考试场次下的所有人员成绩
///
///
///
ExamResults[] Results(int examid, int size, int index, out int countSum);
ExamResults[] Results(string examuid, int size, int index, out int countSum);
///
/// 当前考试场次下的所有人员成绩
///
/// 考试场次id
/// 取多少条
///
ExamResults[] Results(int examid, int count);
#endregion
}
}