using System; using System.Collections.Generic; using System.Linq; using System.Text; using EMIS.DataLogic.Common.EvaluationManage; using Bowin.Common.Linq.Entity; using EMIS.Entities; using EMIS.ViewModel; using System.Linq.Expressions; using EMIS.ViewModel.EvaluationManage; namespace EMIS.CommonLogic.EvaluationManage { public class EvaluationNormServices : BaseServices, IEvaluationNormServices { public EvaluationNormDAL evaluationNormDAL { get; set; } /// /// 查询评分标准信息 /// /// 查询条件实体 /// 评分类型 /// 页码 /// 显示页数 /// public IGridResultSet GetEvaluationNormViewGrid(ConfiguretView configuretView, int? intType, int pageIndex, int pageSize) { var query = evaluationNormDAL.GetEvaluationNormQueryable(x => true); if (intType.HasValue && intType > 0) query = query.Where(x => x.IntType == intType); if (!string.IsNullOrEmpty(configuretView.ConditionValue)) return query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue).OrderBy(x => x.Name).ToGridResultSet(pageIndex, pageSize); return query.OrderBy(x => x.Name).ToGridResultSet(pageIndex, pageSize); } /// /// 查询评分标准信息 /// /// 查询条件实体 /// 评分类型 /// public List GetEvaluationNormViewList(ConfiguretView configuretView, int? intType) { var query = evaluationNormDAL.GetEvaluationNormQueryable(x => true); if (intType.HasValue && intType > 0) query = query.Where(x => x.IntType == intType); if (!string.IsNullOrEmpty(configuretView.ConditionValue)) return query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue).OrderByDescending(x => x.CreateTime).ToList(); return query.OrderByDescending(x => x.CreateTime).ToList(); } /// /// 获取评分标准信息 /// /// 主键ID /// public EMIS.Entities.EM_EvaluationNorm GetEvaluationNorm(Guid? normID) { //查询条件 Expression> expression = (x => x.EvaluationNormID == normID.Value); return evaluationNormDAL.evaluationNormRepository.GetSingle(expression, (x => x.EM_EvaluationNormDetail)); } /// /// 获取评分标准信息 /// /// 评分标准名称 /// public EMIS.Entities.EM_EvaluationNorm GetEvaluationNorm(string Name) { //查询条件 Expression> expression = (x => x.Name == Name); return evaluationNormDAL.evaluationNormRepository.GetSingle(expression); } /// /// 获取评分标准信息 /// /// 主键ID /// public EvaluationNormView GetEvaluationNormView(Guid? normID) { EvaluationNormView evaluationNormView = new EvaluationNormView(); if (normID.HasValue && normID != Guid.Empty) evaluationNormView = evaluationNormDAL.GetEvaluationNormQueryable(x => true).Where(x => x.NormID == normID).FirstOrDefault(); return evaluationNormView; } /// /// 添加 /// /// 实体 /// public bool EvaluationNormAdd(EMIS.Entities.EM_EvaluationNorm evaluationNorm) { try { UnitOfWork.Add(evaluationNorm); UnitOfWork.Commit(); return true; } catch (Exception) { throw; } } /// /// 修改 /// /// 实体 /// public bool EvaluationNormUpdate(EMIS.Entities.EM_EvaluationNorm evaluationNorm) { try { UnitOfWork.Update(evaluationNorm); UnitOfWork.Commit(); return true; } catch (Exception) { throw; } } /// /// 删除 /// /// /// public bool EvaluationNormDelete(List normIDs) { try { UnitOfWork.Remove(w => normIDs.Contains(w.EvaluationNormID.Value)); UnitOfWork.Remove(x => normIDs.Contains(x.EvaluationNormID)); UnitOfWork.Commit(); return true; } catch (Exception) { throw; } } /// /// 获取评分标准明细信息 /// /// 主键ID /// public EMIS.Entities.EM_EvaluationNormDetail GetEvaluationNormDetail(Guid? detailID) { Expression> expression = (x => x.EvaluationNormDetailID == detailID.Value); return evaluationNormDAL.evaluationNormDetailRepository.GetSingle(expression); } /// /// 获取评分标准明细信息 /// /// 评分标准名称 /// public EMIS.Entities.EM_EvaluationNormDetail GetEvaluationNormDetail(string Name) { Expression> expression = (x => x.Name == Name); return evaluationNormDAL.evaluationNormDetailRepository.GetSingle(expression); } /// /// 获取评分标准明细信息 /// /// 主键ID /// public EvaluationNormDetailView GetEvaluationNormDetailView(Guid? detailID) { EvaluationNormDetailView evaluationNormDetailView = new EvaluationNormDetailView(); if (detailID.HasValue && detailID != Guid.Empty) evaluationNormDetailView = evaluationNormDAL.GetEvaluationNormDetailQueryable(x => true).Where(x => x.DetailID == detailID).FirstOrDefault(); return evaluationNormDetailView; } public void Save(EvaluationNormView norm, IList detailList) { EMIS.Entities.EM_EvaluationNorm evaluationNorm = this.GetEvaluationNorm(norm.NormID); if (this.evaluationNormDAL.evaluationNormRepository .GetList(x => x.Name == norm.Name && x.EvaluationNormID != norm.NormID).Count() > 0) { throw new Exception("评分标准名称已存在,请重新输入!"); } if (evaluationNorm == null) { evaluationNorm = new EM_EvaluationNorm(); evaluationNorm.EvaluationNormID = Guid.NewGuid(); this.SetNewStatus(evaluationNorm); this.UnitOfWork.Add(evaluationNorm); } else { this.SetModifyStatus(evaluationNorm); } //evaluationNorm.Code = norm.Code; evaluationNorm.Name = norm.Name; evaluationNorm.NormTypeID = norm.IntType; evaluationNorm.SatisfyWeight = norm.SatisfyWeight; evaluationNorm.Remark = norm.Remark; if (evaluationNorm.NormTypeID == (int)EM_EvaluationNormType.CheckBox) { if (evaluationNorm.EM_EvaluationNormDetail.Count > 0) { evaluationNorm.EM_EvaluationNormDetail.ToList().ForEach(x => this.UnitOfWork.Remove(x)); evaluationNorm.EM_EvaluationNormDetail = new HashSet(); } foreach (var item in detailList) { EMIS.Entities.EM_EvaluationNormDetail evaluationNormDetail = new EMIS.Entities.EM_EvaluationNormDetail(); evaluationNormDetail.EvaluationNormDetailID = Guid.NewGuid(); evaluationNormDetail.EvaluationNormID = evaluationNorm.EvaluationNormID; evaluationNormDetail.OrderNo = item.OrderID; evaluationNormDetail.Name = item.Name; evaluationNormDetail.Weight = (decimal)item.Weight; evaluationNormDetail.Remark = item.Remark; this.SetNewStatus(evaluationNormDetail); evaluationNorm.EM_EvaluationNormDetail.Add(evaluationNormDetail); } } this.UnitOfWork.Commit(); } /// /// 添加 /// /// 实体 /// public bool EvaluationNormDetailAdd(EMIS.Entities.EM_EvaluationNormDetail evaluationNormDetail) { try { UnitOfWork.Add(evaluationNormDetail); UnitOfWork.Commit(); return true; } catch (Exception) { throw; } } /// /// 修改 /// /// 实体 /// public bool EvaluationNormDetailUpdate(EMIS.Entities.EM_EvaluationNormDetail evaluationNormDetail) { try { UnitOfWork.Update(evaluationNormDetail); UnitOfWork.Commit(); return true; } catch (Exception) { throw; } } /// /// 删除 /// /// /// public bool EvaluationNormDetailDelete(List detailIDs) { try { UnitOfWork.Delete(x => detailIDs.Contains(x.EvaluationNormDetailID)); UnitOfWork.Commit(); return true; } catch (Exception) { throw; } } public IList GetEvaluationNormDetailViewList(Guid normID) { return evaluationNormDAL.GetEvaluationNormDetailQueryable(x => x.EvaluationNormID == normID).OrderBy(o => o.OrderID).ToList(); } public IList GetEvaluationNormOrProjectDetailViewList(Guid normID) { return evaluationNormDAL.GetEvaluationNormDetailOrProjectQueryable(x => x.EvaluationNormID == normID).OrderByDescending(o => o.Weight).ToList(); } } }