using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using Bowin.Common.Linq; using Bowin.Common.Data; using Bowin.Common.Linq.Entity; using EMIS.Entities; using EMIS.ViewModel; using EMIS.ViewModel.EvaluationManage.EvaluationTable; using EMIS.DataLogic.EvaluationManage.EvaluationTable; namespace EMIS.CommonLogic.EvaluationManage.EvaluationTable { public class EvaluationTableServices : BaseServices, IEvaluationTableServices { public EvaluationTableDAL EvaluationTableDAL { get; set; } /// /// 查询对应的评价表信息View /// /// /// /// /// /// /// /// /// public IGridResultSet GetEvaluationTableViewGrid(ConfiguretView configuretView, Guid? evaluationParticipateTypeID, Guid? evaluationTypeID, int? isStudent, int? isEnabled, int pageIndex, int pageSize) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (evaluationParticipateTypeID.HasValue) { exp = exp.And(x => x.EvaluationParticipateTypeID == evaluationParticipateTypeID); } if (evaluationTypeID.HasValue) { exp = exp.And(x => x.EvaluationIntTypeID == evaluationTypeID); } if (isEnabled.HasValue) { if (isEnabled.Value == (int)CF_GeneralPurpose.IsYes) { exp = exp.And(x => x.IsEnabled == true); } if (isEnabled.Value == (int)CF_GeneralPurpose.IsNo) { exp = exp.And(x => x.IsEnabled != true); } } var query = EvaluationTableDAL.GetEvaluationTableViewQueryable(exp); if (isStudent.HasValue) { if (isStudent.Value == (int)CF_GeneralPurpose.IsYes) { query = query.Where(x => x.IsStudent == true); } if (isStudent.Value == (int)CF_GeneralPurpose.IsNo) { query = query.Where(x => x.IsStudent != true); } } //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.Code.Length).ThenBy(x => x.Code).ToGridResultSet(pageIndex, pageSize); } /// /// 查询对应的评价表信息List /// /// /// /// /// /// /// public IList GetEvaluationTableViewList(ConfiguretView configuretView, Guid? evaluationParticipateTypeID, Guid? evaluationTypeID, int? isStudent, int? isEnabled) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (evaluationParticipateTypeID.HasValue) { exp = exp.And(x => x.EvaluationParticipateTypeID == evaluationParticipateTypeID); } if (evaluationTypeID.HasValue) { exp = exp.And(x => x.EvaluationIntTypeID == evaluationTypeID); } if (isEnabled.HasValue) { if (isEnabled.Value == (int)CF_GeneralPurpose.IsYes) { exp = exp.And(x => x.IsEnabled == true); } if (isEnabled.Value == (int)CF_GeneralPurpose.IsNo) { exp = exp.And(x => x.IsEnabled != true); } } var query = EvaluationTableDAL.GetEvaluationTableViewQueryable(exp); if (isStudent.HasValue) { if (isStudent.Value == (int)CF_GeneralPurpose.IsYes) { query = query.Where(x => x.IsStudent == true); } if (isStudent.Value == (int)CF_GeneralPurpose.IsNo) { query = query.Where(x => x.IsStudent != true); } } //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.Code.Length).ThenBy(x => x.Code).ToList(); } /// /// 查询对应的评价表信息View(启用状态为是或已使用) /// /// /// /// /// /// /// /// public IGridResultSet GetEnabledAndUseEvaluationTableViewGrid(ConfiguretView configuretView, Guid? evaluationTableID, Guid? evaluationParticipateTypeID, Guid? evaluationTypeID, int pageIndex, int pageSize) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (evaluationTableID.HasValue) { exp = exp.And(x => x.IsEnabled == true || x.EvaluationTableID == evaluationTableID); } else { exp = exp.And(x => x.IsEnabled == true); } if (evaluationParticipateTypeID.HasValue) { exp = exp.And(x => x.EvaluationParticipateTypeID == evaluationParticipateTypeID); } if (evaluationTypeID.HasValue) { exp = exp.And(x => x.EvaluationIntTypeID == evaluationTypeID); } var query = EvaluationTableDAL.GetEvaluationTableViewQueryable(exp); //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.Code.Length).ThenBy(x => x.Code).ToGridResultSet(pageIndex, pageSize); } /// /// 查询对应的评价表信息List(启用状态为是或已使用) /// /// /// /// /// /// public IList GetEnabledAndUseEvaluationTableViewList(ConfiguretView configuretView, Guid? evaluationTableID, Guid? evaluationParticipateTypeID, Guid? evaluationTypeID) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (evaluationTableID.HasValue) { exp = exp.And(x => x.IsEnabled == true || x.EvaluationTableID == evaluationTableID); } else { exp = exp.And(x => x.IsEnabled == true); } if (evaluationParticipateTypeID.HasValue) { exp = exp.And(x => x.EvaluationParticipateTypeID == evaluationParticipateTypeID); } if (evaluationTypeID.HasValue) { exp = exp.And(x => x.EvaluationIntTypeID == evaluationTypeID); } var query = EvaluationTableDAL.GetEvaluationTableViewQueryable(exp); //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.Code.Length).ThenBy(x => x.Code).ToList(); } /// /// 查询对应的评价表信息EvaluationTableView /// /// /// public EvaluationTableView GetEvaluationTableView(Guid? evaluationTableID) { try { Expression> exp = (x => x.EvaluationTableID == evaluationTableID); var query = EvaluationTableDAL.GetEvaluationTableViewQueryable(exp).SingleOrDefault(); return query; } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 编辑 /// /// public void EvaluationTableEdit(EvaluationTableView evaluationTableView) { try { var evaluationTableVerify = EvaluationTableDAL.EvaluationTableRepository.GetList(x => x.EvaluationTableID != evaluationTableView.EvaluationTableID && (x.Code == evaluationTableView.Code.Trim() || x.Name == evaluationTableView.Name.Trim())).SingleOrDefault(); if (evaluationTableVerify == null) { if (evaluationTableView.EvaluationTableID != Guid.Empty) { var evaluationTable = EvaluationTableDAL.EvaluationTableRepository.GetList(x => x.EvaluationTableID == evaluationTableView.EvaluationTableID).SingleOrDefault(); if (evaluationTable == null) { throw new Exception("数据有误,请核查。"); } else { //表示修改 evaluationTable.Code = evaluationTableView.Code.Trim(); evaluationTable.Name = evaluationTableView.Name.Trim(); evaluationTable.EvaluationParticipateTypeID = evaluationTableView.EvaluationParticipateTypeID; evaluationTable.EvaluationIntTypeID = evaluationTableView.EvaluationTypeID; evaluationTable.Weight = evaluationTableView.Weight; evaluationTable.IsEnabled = evaluationTableView.IsEnabled; evaluationTable.Remark = evaluationTableView.Remark; SetModifyStatus(evaluationTable); } } else { //表示新增 var newEvaluationTable = new EM_EvaluationTable(); newEvaluationTable.EvaluationTableID = Guid.NewGuid(); newEvaluationTable.Code = evaluationTableView.Code.Trim(); newEvaluationTable.Name = evaluationTableView.Name.Trim(); newEvaluationTable.EvaluationParticipateTypeID = evaluationTableView.EvaluationParticipateTypeID; newEvaluationTable.EvaluationIntTypeID = evaluationTableView.EvaluationTypeID; newEvaluationTable.Weight = evaluationTableView.Weight; newEvaluationTable.IsEnabled = evaluationTableView.IsEnabled; newEvaluationTable.Remark = evaluationTableView.Remark; SetNewStatus(newEvaluationTable); UnitOfWork.Add(newEvaluationTable); } } else { throw new Exception("已存在相同的评价表信息(编号或评价表名唯一),请核查。"); } UnitOfWork.Commit(); } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 删除 /// /// /// public bool EvaluationTableDelete(List evaluationTableIDs) { try { UnitOfWork.Delete(x => evaluationTableIDs.Contains(x.EvaluationTableID)); return true; } catch (Exception) { throw; } } } }