using Dapper; using Learun.DataBase.Repository; using Learun.Util; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace Learun.Application.TwoDevelopment.EducationalAdministration { /// /// 版 本 Learun-ADMS-Ultimate V7.0.0 数字化智慧校园 /// Copyright (c) 2013-2018 北京泉江科技有限公司 /// 创 建:超级管理员 /// 日 期:2019-05-24 10:27 /// 描 述:排考数据同步 /// public class ArrangeExamTermService : RepositoryFactory { private static readonly HttpClient Client; static ArrangeExamTermService() { Client = new HttpClient(); } #region 获取数据 /// /// 获取页面显示列表数据 /// /// 查询参数 /// public IEnumerable GetPageList(Pagination pagination, string queryJson) { try { var strSql = new StringBuilder(); strSql.Append("SELECT "); strSql.Append(@" t.AETId, t.AcademicYearNo, t.Semester, t.ExamDate, t.ExamTime, t.ExamSection, t.ClassNo, t.ClassName, t.LessonNo, t.LessonName, t.LessonSortNo, t.EmpNo, t.EmpName, t.ClassRoomNo, t.ClassRoomName "); strSql.Append(" FROM ArrangeExamTerm t "); strSql.Append(" WHERE 1=1 "); var queryParam = queryJson.ToJObject(); // 虚拟参数 var dp = new DynamicParameters(new { }); return this.BaseRepository("CollegeMIS").FindList(strSql.ToString(), dp, pagination); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取ArrangeExamTerm表实体数据 /// 主键 /// /// public ArrangeExamTermEntity GetArrangeExamTermEntity(string keyValue) { try { return this.BaseRepository("CollegeMIS").FindEntity(keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 获取ArrangeExamTerm表实体数据 /// 学年 /// 学期 /// /// public ArrangeExamTermEntity GetArrangeExamTermEntityByYear(string academicYearNo, string semester) { try { return this.BaseRepository("CollegeMIS").FindEntity(x => x.AcademicYearNo == academicYearNo && x.Semester == semester); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 提交数据 /// /// 删除实体数据 /// 主键 /// /// public void DeleteEntity(string keyValue) { try { this.BaseRepository("CollegeMIS").Delete(t => t.AETId == keyValue); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 保存实体数据(新增、修改) /// 主键 /// /// public void SaveEntity(string keyValue, ArrangeExamTermEntity entity) { try { if (!string.IsNullOrEmpty(keyValue)) { entity.Modify(keyValue); this.BaseRepository("CollegeMIS").Update(entity); } else { entity.Create(); this.BaseRepository("CollegeMIS").Insert(entity); } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion #region 扩展数据 /// /// 2021新排考接口 /// /// /// public async Task AsyncArrangeExamDataNew(ArrangeLessonTermEntity entity) { bool result = false; try { //清空本学年本学期排考数据 var academicYearNo =entity.AcademicYearNo; var semester =entity.Semester; var schoolid = entity.F_SchoolId; this.BaseRepository("CollegeMIS").ExecuteBySql($"delete from ArrangeExamTermNew where AcademicYearNo='{academicYearNo}' and Semester='{semester}' and F_SchoolId='{schoolid}'"); this.BaseRepository("CollegeMIS").ExecuteBySql($"delete from ArrangeExamTermItemNew where AcademicYearNo='{academicYearNo}' and Semester='{semester}' and F_SchoolId='{schoolid}'"); //排考数据处理 var insertList = new List(); var arrangeExamTermData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var classinfoData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var studentData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); HttpContent httpContent = new StringContent("{\"school\":\"" + entity.F_SchoolId + "\",\"year\":\"" + entity.AcademicYearNo + "\",\"number\":\"" + entity.Semester + "\"}"); httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); var apiData = await Client.PostAsync(Config.GetValue("ArrangeExamAPINew"), httpContent).Result.Content.ReadAsStringAsync(); //明细接口 //Client.PostAsync(Config.GetValue("ArrangeExamItemAPINew"), httpContent); if (!string.IsNullOrEmpty(apiData)) { var data = JsonConvert.DeserializeObject(apiData); if (!data.success) { return result; } var dataList = data.entity.list; if (dataList.Any()) { var insertDataList = new List(); foreach (var item in dataList) { var insertData = new ArrangeExamTermNewEntity { AETId = Guid.NewGuid().ToString(), AcademicYearNo = academicYearNo, Semester = semester, F_SchoolId = schoolid, ExamDate = Convert.ToDateTime(item.date).Date, ExamTime = Convert.ToDateTime(item.date).ToShortTimeString()+"~"+Convert.ToDateTime(item.time).ToShortTimeString(), LessonNo =item.lessonNo, LessonName=item.lessonName, EmpNo=item.empNo, EmpName = item.empName, ClassRoomNo=item.classroomNo, ClassRoomName = item.classroomName }; if (arrangeExamTermData.Count(x => x.ExamDate == insertData.ExamDate && x.LessonNo == insertData.LessonNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0 && insertDataList.Count(x => x.ExamDate == insertData.ExamDate && x.LessonNo == insertData.LessonNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0) { insertDataList.Add(insertData); } } insertList.AddRange(insertDataList); result = await BaseRepository("CollegeMIS").InsertAsync(insertList)>0; } } //明细对接 string sql = @"SELECT semester.year AS 'AcademicYearNo',semester.number AS 'Semester',currid.number AS 'LessonNo',currid.name AS 'LessonName', student.name AS 'StuName',student.number AS 'StuNo',classroom.name 'ClassRoomName',classroom.number AS 'ClassRoomNo', paikao.time AS 'StartDate',paikao.endtime 'EndDate',a.number 'SitNumber', (SELECT GROUP_CONCAT(teachername) FROM tb_paikao WHERE currid = a.`currid` AND classroomid = a.`classroom`) AS EmpName, (SELECT GROUP_CONCAT(number) FROM tb_teacher WHERE id IN (SELECT teacherid FROM tb_paikao WHERE currid = a.`currid` AND classroomid = a.`classroom`) ) AS EmpNo FROM tb_studentpaikao a LEFT JOIN tb_student student ON student.id = a.student LEFT JOIN tb_classroom classroom ON classroom.id = a.classroom LEFT JOIN tb_curriculum currid ON currid.id = a.currid LEFT JOIN tb_semester semester ON semester.id = a.semester LEFT JOIN tb_paikaorule paikao ON paikao.currid = a.currid where semester.year='"+academicYearNo+ "' and semester.number='"+semester+"'"; var list= BaseRepository("paikeDbString").FindList(sql); var listsqlserver =new List(); foreach (var item in list) { ArrangeExamTermItemNewEntity aetitem = new ArrangeExamTermItemNewEntity(); aetitem.Create(); aetitem.AcademicYearNo = item.AcademicYearNo; aetitem.Semester = item.Semester; aetitem.LessonNo = item.LessonNo; aetitem.LessonName = item.LessonName; item.ExamDate = Convert.ToDateTime(item.StartDate); aetitem.ExamDate = item.ExamDate; item.ExamTime = Convert.ToDateTime(item.StartDate).ToShortTimeString() + "~" + Convert.ToDateTime(item.EndDate).ToShortTimeString(); aetitem.ExamTime = item.ExamTime; aetitem.ClassNo = item.ClassNo; aetitem.ClassName = item.ClassName; aetitem.EmpNo = item.EmpNo; aetitem.EmpName = item.EmpName; aetitem.ClassRoomNo = item.ClassRoomNo; aetitem.ClassRoomName = item.ClassRoomName; aetitem.F_SchoolId = schoolid; aetitem.SitNumber = item.SitNumber; aetitem.StuNo = item.StuNo; aetitem.StuName = item.StuName; var classitem = studentData.Find(m => m.StuNo == item.StuNo); item.ClassNo = classitem?.ClassNo; aetitem.ClassNo = item.ClassNo; aetitem.ClassName = classinfoData.Find(m=>m.ClassNo==aetitem.ClassNo)?.ClassName; listsqlserver.Add(aetitem); } BaseRepository("CollegeMIS").Insert(listsqlserver); } catch (Exception ex) { throw ex; } return result; } /// /// 排考数据同步 /// /// public async Task AsyncArrangeExamData() { bool result = false; try { //清空本学年本学期排考数据 var academicYearNo = Common.GetSemesterAndYear().AcademicYearShort; var semester = Common.GetSemesterAndYear().Semester; this.BaseRepository("CollegeMIS").ExecuteBySql($"delete from ArrangeExamTerm where AcademicYearNo='{academicYearNo}' and Semester='{semester}' "); //排考结构处理 var insertListOfStructure = new List(); var apiDataOfStructure = await Client.GetStringAsync(Config.GetValue("ArrangeExamStructureAPI")); if (!string.IsNullOrEmpty(apiDataOfStructure)) { var data = JsonConvert.DeserializeObject(apiDataOfStructure); if (!data.success) { return result; } var dataList = data.entity.list; if (dataList.Any()) { foreach (var item in dataList) { var model = this.BaseRepository("CollegeMIS").FindEntity(x => x.StructureId == item.id); if (model == null) { var insertDataOfStructure = new ArrangeExamStructureEntity() { Id = Guid.NewGuid().ToString(), StructureId = item.id, StartTime = Convert.ToDateTime(item.starttime), EndTime = Convert.ToDateTime(item.endtime), MorningNum = Convert.ToInt32(item.morning), AfternoonNum = Convert.ToInt32(item.afternoon), NightNum = Convert.ToInt32(item.night), Time = item.time }; if (insertListOfStructure.Count(x => x.StructureId == insertDataOfStructure.StructureId) == 0) { insertListOfStructure.Add(insertDataOfStructure); } } else { model.StartTime = Convert.ToDateTime(item.starttime); model.EndTime = Convert.ToDateTime(item.endtime); model.MorningNum = Convert.ToInt32(item.morning); model.AfternoonNum = Convert.ToInt32(item.afternoon); model.NightNum = Convert.ToInt32(item.night); model.Time = item.time; this.BaseRepository("CollegeMIS").Update(model); } } } } var insertResultOfStructure = await BaseRepository("CollegeMIS").InsertAsync(insertListOfStructure); //排考数据处理 var insertList = new List(); var arrangeExamTermData = (await BaseRepository("CollegeMIS").FindListAsync()).ToList(); var classRoomInfoData = this.BaseRepository("CollegeMIS").FindList().ToList(); var lessonData = this.BaseRepository("CollegeMIS").FindList().ToList(); //必修数据处理 var apiData = await Client.GetStringAsync(Config.GetValue("ArrangeExamAPI")); if (!string.IsNullOrEmpty(apiData)) { var data = JsonConvert.DeserializeObject(apiData); if (!data.success) { return result; } var dataList = data.entity.list; if (dataList.Any()) { var insertDataList = new List(); foreach (var item in dataList) { var insertData = new ArrangeExamTermEntity { AETId = Guid.NewGuid().ToString(), PaiKaoId = item.id, AcademicYearNo = Common.GetSemesterAndYear(item.date).AcademicYearShort, Semester = Common.GetSemesterAndYear(item.date).Semester, ExamDate = Convert.ToDateTime(item.date), ExamTime = item.time, ExamSection = item.section, ClassNo = item.classId, ClassName = item.className, LessonNo = item.currId, LessonName = item.currName, LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.currId)?.LessonSortNo, EmpNo = item.teacherId, EmpName = item.teacherName, ClassRoomNo = classRoomInfoData.FirstOrDefault(x => x.ClassroomId.Trim() == item.classroomId.Trim())?.ClassroomNo.Trim(), ClassRoomName = item.classroomName, StructureId = item.kaoshis }; if (arrangeExamTermData.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.ClassNo == insertData.ClassNo && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0 && insertDataList.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.ClassNo == insertData.ClassNo && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0) { insertDataList.Add(insertData); } } insertList.AddRange(insertDataList); } } //选修数据处理 var apiDataOfElective = await Client.GetStringAsync(Config.GetValue("ArrangeExamOfElectiveAPI")); if (!string.IsNullOrEmpty(apiData)) { var data = JsonConvert.DeserializeObject(apiDataOfElective); if (!data.success) { return result; } var dataList = data.entity.list; if (dataList.Any()) { var insertDataList = new List(); foreach (var item in dataList) { var insertData = new ArrangeExamTermEntity { AETId = Guid.NewGuid().ToString(), PaiKaoId = item.id, AcademicYearNo = Common.GetSemesterAndYear(item.date).AcademicYearShort, Semester = Common.GetSemesterAndYear(item.date).Semester, ExamDate = Convert.ToDateTime(item.date), ExamTime = item.time, ExamSection = item.section, ClassNo = "", ClassName = "", LessonNo = item.currId, LessonName = item.currName, LessonSortNo = lessonData.FirstOrDefault(m => m.LessonNo == item.currId)?.LessonSortNo, EmpNo = item.teacherId, EmpName = item.teacherName, ClassRoomNo = classRoomInfoData.FirstOrDefault(x => x.ClassroomId.Trim() == item.classroomId.Trim())?.ClassroomNo.Trim(), ClassRoomName = item.classroomName, StructureId = item.kaoshis }; if (arrangeExamTermData.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0 && insertDataList.Count(x => x.ExamDate == insertData.ExamDate && x.ExamSection == insertData.ExamSection && x.LessonNo == insertData.LessonNo && x.LessonSortNo == insertData.LessonSortNo && x.EmpNo == insertData.EmpNo && x.ClassRoomNo == insertData.ClassRoomNo) == 0) { insertDataList.Add(insertData); } } insertList.AddRange(insertDataList); } } var insertResult = await BaseRepository("CollegeMIS").InsertAsync(insertList); if (insertResultOfStructure > 0 && insertResult > 0) { result = true; } } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } return result; } internal bool GetAny() { try { return this.BaseRepository("CollegeMIS").FindList().Any(); } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 考试表 /// /// 查询开始时间 /// 查询截止时间 /// 班级号 /// 监考教师号 /// public IEnumerable GetExamTable(string startDate, string endDate, string classNo, string empNo) { try { var semesterAndYear = Common.GetSemesterAndYear(startDate); var strAcademicYear = semesterAndYear.AcademicYearShort; var strSemester = semesterAndYear.Semester; var st = Convert.ToDateTime(startDate); var et = Convert.ToDateTime(endDate); var arrangeExamTermList = this.BaseRepository("CollegeMIS").FindList(x => x.AcademicYearNo == strAcademicYear && x.Semester == strSemester && x.ExamDate >= st && x.ExamDate <= et); if (!string.IsNullOrEmpty(classNo)) { arrangeExamTermList = arrangeExamTermList.Where(x => x.ClassNo == classNo); } if (!string.IsNullOrEmpty(empNo)) { arrangeExamTermList = arrangeExamTermList.Where(x => x.EmpNo.Contains(empNo)); } foreach (var arrangeExamTermItem in arrangeExamTermList) { var week = Convert.ToDateTime(arrangeExamTermItem.ExamDate).DayOfWeek.GetHashCode(); if (week == 0) { week = 7; } arrangeExamTermItem.week = week; } var data = arrangeExamTermList.Select(x => new TimeTable() { AcademicYear = x.AcademicYearNo, Semester = x.Semester, LessonDate = x.ExamDate.HasValue ? x.ExamDate.Value : DateTime.MinValue, LessonNo = x.LessonNo, LessonName = x.LessonSortNo == "1" ? x.LessonName : (x.LessonSortNo == "2" ? x.LessonName + "[选修]" : x.LessonName + "[未知]"), LessonTime = string.Format("{0}{1}", x.week, x.ExamSection), EmpNo = x.EmpNo, EmpName = x.EmpName, TeachClassNo = x.ClassNo, ClassRoomNo = x.ClassRoomNo, ClassroomName = x.ClassRoomName, LessonSortNo = x.LessonSortNo, ClassName = x.ClassName, StructureId = x.StructureId }); return data; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 考试表-选修课【学子在线】 /// /// 查询开始时间 /// 查询截止时间 /// 学号 /// public IEnumerable GetExamTableOfElectiveInStudent(string startDate, string endDate, string stuNo) { try { var semesterAndYear = Common.GetSemesterAndYear(startDate); var strAcademicYear = semesterAndYear.AcademicYearShort; var strSemester = semesterAndYear.Semester; var st = Convert.ToDateTime(startDate); var et = Convert.ToDateTime(endDate); var strSql = new StringBuilder(); strSql.Append("select t.* from "); strSql.Append(" [dbo].[ArrangeExamTerm] t left join [dbo].[StuSelectLessonListOfElective] s on t.AcademicYearNo=s.AcademicYearNo and t.Semester=s.Semester and t.LessonSortNo=s.LessonSortNo and t.LessonNo=s.LessonNo and s.Status=2 "); strSql.Append(" and s.StuNo='" + stuNo + "' "); strSql.Append(" where t.AcademicYearNo='" + strAcademicYear + "' and t.Semester='" + strSemester + "'and t.LessonSortNo='2' and t.ExamDate >= '" + st + "' and t.ExamDate <= '" + et + "' "); var arrangeExamTermList = this.BaseRepository("CollegeMIS").FindList(strSql.ToString()); foreach (var arrangeExamTermItem in arrangeExamTermList) { var week = Convert.ToDateTime(arrangeExamTermItem.ExamDate).DayOfWeek.GetHashCode(); if (week == 0) { week = 7; } arrangeExamTermItem.week = week; } var data = arrangeExamTermList.Select(x => new TimeTable() { AcademicYear = x.AcademicYearNo, Semester = x.Semester, LessonDate = x.ExamDate.HasValue ? x.ExamDate.Value : DateTime.MinValue, LessonNo = x.LessonNo, LessonName = x.LessonSortNo == "1" ? x.LessonName : (x.LessonSortNo == "2" ? x.LessonName + "[选修]" : x.LessonName + "[未知]"), LessonTime = string.Format("{0}{1}", x.week, x.ExamSection), EmpNo = x.EmpNo, EmpName = x.EmpName, TeachClassNo = x.ClassNo, ClassRoomNo = x.ClassRoomNo, ClassroomName = x.ClassRoomName, LessonSortNo = x.LessonSortNo, ClassName = x.ClassName, StructureId = x.StructureId }); return data; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 考试表--班级下拉框信息 /// /// /// public IEnumerable GetClassData() { try { //前三年-后三年 var preYear = DateTime.Now.AddYears(-3).Year; var nextYear = DateTime.Now.AddYears(3).Year; var yearList = new List(); for (int i = preYear; i <= nextYear; i++) { yearList.Add(string.Format("{0}-{1}", i.ToString().Substring(2), (i + 1).ToString().Substring(2))); } var classData = this.BaseRepository("CollegeMIS").FindList(x => yearList.Contains(x.AcademicYearNo)); var aa = classData.Where(x => !string.IsNullOrEmpty(x.ClassNo)).Select(x => new { x.ClassNo, x.ClassName }).Distinct().ToList(); var aaa = aa.Select(x => new SelectModel() { text = x.ClassName, value = x.ClassNo }).OrderBy(x => x.value); return aaa; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } /// /// 考试表--教师下拉框信息 /// /// /// public IEnumerable GetTeacherData() { try { //前三年-后三年 var preYear = DateTime.Now.AddYears(-3).Year; var nextYear = DateTime.Now.AddYears(3).Year; var yearList = new List(); for (int i = preYear; i <= nextYear; i++) { yearList.Add(string.Format("{0}-{1}", i.ToString().Substring(2), (i + 1).ToString().Substring(2))); } var teacherData = this.BaseRepository("CollegeMIS").FindList(x => yearList.Contains(x.AcademicYearNo)); var aa = new List(); var aaa = teacherData.Select(x => new { x.EmpNo, x.EmpName }).Distinct().ToList(); foreach (var item in aaa) { if (item.EmpNo.IndexOf(',') == -1)//单个教师 { var model = new SelectModel() { text = item.EmpName, value = item.EmpNo }; aa.Add(model); } else//多个教师 { var arrEmpNo = item.EmpNo.Split(','); var arrEmpName = item.EmpName.Split(','); for (int i = 0; i < arrEmpNo.Length; i++) { var model = new SelectModel() { text = arrEmpName[i], value = arrEmpNo[i] }; aa.Add(model); } } } var aaaa = aa.Select(x => new { x.text, x.value }).Distinct().ToList(); var aaaaa = aaaa.Select(x => new SelectModel() { text = x.text, value = x.value }).OrderBy(x => x.value); return aaaaa; } catch (Exception ex) { if (ex is ExceptionEx) { throw; } else { throw ExceptionEx.ThrowServiceException(ex); } } } #endregion /// /// 下拉框模型 /// public class SelectModel { public string value { get; set; } public string text { get; set; } } #region 排考结构接口数据模型 public class ArrangeExamListOfStructure { public string id { get; set; } public string starttime { get; set; } public string endtime { get; set; } public string morning { get; set; } public string afternoon { get; set; } public string night { get; set; } public string time { get; set; } public string kaoshis { get; set; } } public class ArrangeExamEntityOfStructure { /// /// true /// public string opflag { get; set; } /// /// 1000 /// public string opCode { get; set; } /// /// OK! /// public string message { get; set; } /// /// List /// public List list { get; set; } } public class ArrangeExamRootOfStructure { /// /// 操作成功 /// public string message { get; set; } /// /// Success /// public bool success { get; set; } /// /// Entity /// public ArrangeExamEntityOfStructure entity { get; set; } } #endregion #region 排考接口数据模型 public class ArrangeExamList { public string id { get; set; } public string classId { get; set; } public string className { get; set; } public string currId { get; set; } public string currName { get; set; } public string teacherId { get; set; } public string teacherName { get; set; } public string section { get; set; } public string time { get; set; } public string date { get; set; } public string classroomId { get; set; } public string classroomNo { get; set; } public string classroomName { get; set; } public string kaoshis { get; set; } public string lessonNo { get; set; } public string lessonName { get; set; } public string empNo { get; set; } public string empName { get; set; } } public class ArrangeExamEntity { /// /// true /// public string opflag { get; set; } /// /// 1000 /// public string opCode { get; set; } /// /// OK! /// public string message { get; set; } /// /// List /// public List list { get; set; } } public class ArrangeExamRoot { /// /// 操作成功 /// public string message { get; set; } /// /// Success /// public bool success { get; set; } /// /// Entity /// public ArrangeExamEntity entity { get; set; } } #endregion } }