using System; using System.Collections.Generic; using System.Linq; using System.Text; using EMIS.DataLogic.MinorManage.MinorSetting; using Bowin.Common.Linq.Entity; using EMIS.ViewModel; using EMIS.ViewModel.MinorManage.MinorSetting; using System.Linq.Expressions; using Bowin.Common.Linq; using EMIS.Entities; using EMIS.ViewModel.ScoreManage; namespace EMIS.CommonLogic.MinorManage.MinorSetting { public class MinorConditionServices : BaseServices, IMinorConditionServices { public MinorConditionDAL minorConditionDAL { get; set; } /// /// 查询辅修条件列表 /// /// /// /// /// /// public IGridResultSet MinorConditionViewGrid(ConfiguretView configuretView, int? isCurrent, int pageIndex, int pageSize) { Expression> exp = (x => true); if (isCurrent.HasValue) { if (isCurrent == 1) { exp = exp.And(x => x.RecordStatus >= (int)SYS_STATUS.USABLE); } if (isCurrent == 0) { exp = exp.And(x => x.RecordStatus <= (int)SYS_STATUS.UNUSABLE); } } var query = minorConditionDAL.GetMinorConditionViewQueryable(exp); //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.Title).ToGridResultSet(pageIndex, pageSize); } /// /// 查询辅修信息(Excel) /// /// /// /// /// public List GetMinorConditionViewList(ConfiguretView configuretView, int? isCurrent, List idList) { //毕业条件 Expression> exp = (x => true); if (isCurrent.HasValue) { if (isCurrent == 1) { exp = exp.And(x => x.RecordStatus >= (int)SYS_STATUS.USABLE); } if (isCurrent == 0) { exp = exp.And(x => x.RecordStatus <= (int)SYS_STATUS.UNUSABLE); } } if (idList.Count > 0 && idList != null) { exp = exp.And(x => idList.Contains(x.MinorConditionID)); } var query = minorConditionDAL.GetMinorConditionViewQueryable(exp); //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.Title).ToList(); } /// /// 查询辅修条件(根据ID) /// /// /// public MinorConditionView GetMinorConditionView(Guid? minorConditionID) { try { var query = minorConditionDAL .GetMinorConditionViewQueryable(x => x.MinorConditionID == minorConditionID) .SingleOrDefault(); return query; } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 辅修条件编辑(新增、修改) /// /// public void MinorConditionEdit(MinorConditionView minorConditionView) { try { ER_MinorCondition minorCondition = new ER_MinorCondition(); if (minorConditionView.MinorConditionID == null || minorConditionView.MinorConditionID == Guid.Empty) { //新增、复制新增 minorCondition = minorConditionDAL.minorConditionRepository .GetSingle(x => x.Title == minorConditionView.Title); if (minorCondition != null) { throw new Exception("已存在相同的辅修条件。"); } minorCondition = new ER_MinorCondition(); minorCondition.MinorConditionID = Guid.NewGuid(); minorCondition.Title = minorConditionView.Title; minorCondition.RecordStatus = minorConditionView.IsEnable ? 1 : 0; minorCondition.CreateTime = DateTime.Now; minorCondition.CreateUserID = EMIS.Utility.FormValidate.CustomPrincipal.Current.UserID; minorCondition.ModifyTime = DateTime.Now; minorCondition.ModifyUserID = EMIS.Utility.FormValidate.CustomPrincipal.Current.UserID; UnitOfWork.Add(minorCondition); } else { //修改 minorCondition = minorConditionDAL.minorConditionRepository .GetSingle(x => x.MinorConditionID != minorConditionView.MinorConditionID && x.Title == minorConditionView.Title && x.MethodFullName == minorConditionView.MethodFullName); if (minorCondition != null) { throw new Exception("已存在相同的辅修条件。"); } minorCondition = minorConditionDAL.minorConditionRepository .GetSingle(x => x.MinorConditionID == minorConditionView.MinorConditionID); if (minorCondition == null) { throw new Exception("数据有误,请核查。"); } minorCondition.Title = minorConditionView.Title; minorCondition.RecordStatus = minorConditionView.IsEnable ? 1 : 0; minorCondition.ModifyTime = DateTime.Now; minorCondition.ModifyUserID = EMIS.Utility.FormValidate.CustomPrincipal.Current.UserID; } UnitOfWork.Commit(); } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 辅修条件删除 /// /// public void MinorConditionDelete(IList minorConditionIDList) { try { if (minorConditionIDList.Count > 0) { UnitOfWork.Delete(x => minorConditionIDList.Contains(x.MinorConditionID)); } } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 成绩全部及格 /// /// /// public bool AllPass(Guid userID) { List scoreList = new List(); if (minorConditionDAL.GetAllScore(userID) != null) { scoreList = minorConditionDAL.GetAllScore(userID).ToList(); if (scoreList.Any(x => x.TotalScore < 60)) { return false; } } return true; } /// /// 没有补考记录 /// /// /// public bool NotResit(Guid userID) { List scoreList = new List(); if (minorConditionDAL.GetAllScore(userID) != null) { scoreList = minorConditionDAL.GetAllScore(userID).ToList(); if (scoreList.Any(x => x.ExamsCategoryID == (int)CF_ExamsCategory.Resit)) { return false; } } return true; } } }