using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; using System.Transactions; 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 EvaluationNormServices : BaseServices, IEvaluationNormServices { public EvaluationNormDAL EvaluationNormDAL { get; set; } /// /// 查询对应的评分标准信息View /// /// /// /// /// /// public IGridResultSet GetEvaluationNormViewGrid(ConfiguretView configuretView, int? normTypeID, int pageIndex, int pageSize) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (normTypeID.HasValue) { exp = exp.And(x => x.NormTypeID == normTypeID); } var query = EvaluationNormDAL.GetEvaluationNormViewQueryable(exp); //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.Name).ToGridResultSet(pageIndex, pageSize); } /// /// 查询对应的评分标准信息List /// /// /// /// public IList GetEvaluationNormViewList(ConfiguretView configuretView, int? normTypeID) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (normTypeID.HasValue) { exp = exp.And(x => x.NormTypeID == normTypeID); } var query = EvaluationNormDAL.GetEvaluationNormViewQueryable(exp); //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.Name).ToList(); } /// /// 查询对应的评分标准明细信息View /// /// /// /// /// /// public IGridResultSet GetEvaluationNormDetailViewGrid(ConfiguretView configuretView, Guid? evaluationNormID, int pageIndex, int pageSize) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); exp = exp.And(x => x.EvaluationNormID == evaluationNormID); var query = EvaluationNormDAL.GetEvaluationNormDetailViewQueryable(exp); //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.EvaluationNormName).OrderBy(x => x.OrderNo).ToGridResultSet(pageIndex, pageSize); } /// /// 查询对应的评分标准明细信息List /// /// /// /// public IList GetEvaluationNormDetailViewList(ConfiguretView configuretView, Guid? evaluationNormID) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); exp = exp.And(x => x.EvaluationNormID == evaluationNormID); var query = EvaluationNormDAL.GetEvaluationNormDetailViewQueryable(exp); //查询条件 if (!string.IsNullOrEmpty(configuretView.ConditionValue)) { query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue.Trim()); } return query.OrderBy(x => x.EvaluationNormName).OrderBy(x => x.OrderNo).ToList(); } /// /// 查询对应的评分标准信息EvaluationNormView /// /// /// public EvaluationNormView GetEvaluationNormView(Guid? evaluationNormID) { try { Expression> exp = (x => x.EvaluationNormID == evaluationNormID); var query = EvaluationNormDAL.GetEvaluationNormViewQueryable(exp).SingleOrDefault(); return query; } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 查询对应的评分标准明细信息EvaluationNormDetailView /// /// /// public EvaluationNormDetailView GetEvaluationNormDetailView(Guid? evaluationNormDetailID) { try { Expression> exp = (x => x.EvaluationNormDetailID == evaluationNormDetailID); var query = EvaluationNormDAL.GetEvaluationNormDetailViewQueryable(exp).SingleOrDefault(); return query; } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 编辑 /// /// /// public void EvaluationNormEdit(EvaluationNormView evaluationNormView, IList detailViewList) { try { var evaluationNormVerify = EvaluationNormDAL.EvaluationNormRepository.GetList(x => x.EvaluationNormID != evaluationNormView.EvaluationNormID && x.Name == evaluationNormView.Name.Trim()).SingleOrDefault(); if (evaluationNormVerify == null) { var newEvaluationNormInList = new List(); var newEvaluationNormUpList = new List(); var newEvaluationNormDetailInList = new List(); var evaluationNormIDDelList = new List(); if (evaluationNormView.EvaluationNormID != Guid.Empty) { var evaluationNorm = EvaluationNormDAL.EvaluationNormRepository.GetList(x => x.EvaluationNormID == evaluationNormView.EvaluationNormID).SingleOrDefault(); if (evaluationNorm == null) { throw new Exception("数据有误,请核查。"); } else { //表示修改 evaluationNorm.Name = evaluationNormView.Name.Trim(); evaluationNorm.NormTypeID = evaluationNormView.NormTypeID; evaluationNorm.SatisfyWeight = evaluationNormView.SatisfyWeight; evaluationNorm.Remark = evaluationNormView.Remark; SetModifyStatus(evaluationNorm); newEvaluationNormUpList.Add(evaluationNorm); if (detailViewList != null && detailViewList.Count() > 0) { evaluationNormIDDelList.Add(evaluationNorm.EvaluationNormID); if (evaluationNorm.NormTypeID == (int)EM_EvaluationNormType.CheckBox) { foreach (var detailView in detailViewList) { var newDetail = new EM_EvaluationNormDetail(); newDetail.EvaluationNormDetailID = Guid.NewGuid(); newDetail.EvaluationNormID = evaluationNorm.EvaluationNormID; newDetail.OrderNo = detailView.OrderNo; newDetail.Name = detailView.Name; newDetail.Weight = detailView.Weight; newDetail.Remark = detailView.Remark; SetNewStatus(newDetail); newEvaluationNormDetailInList.Add(newDetail); } } } else { evaluationNormIDDelList.Add(evaluationNorm.EvaluationNormID); } } } else { //表示新增 var newEvaluationNorm = new EM_EvaluationNorm(); newEvaluationNorm.EvaluationNormID = Guid.NewGuid(); newEvaluationNorm.Name = evaluationNormView.Name.Trim(); newEvaluationNorm.NormTypeID = evaluationNormView.NormTypeID; newEvaluationNorm.SatisfyWeight = evaluationNormView.SatisfyWeight; newEvaluationNorm.Remark = evaluationNormView.Remark; SetNewStatus(newEvaluationNorm); newEvaluationNormInList.Add(newEvaluationNorm); if (detailViewList != null && detailViewList.Count() > 0) { if (newEvaluationNorm.NormTypeID == (int)EM_EvaluationNormType.CheckBox) { foreach (var detailView in detailViewList) { var newDetail = new EM_EvaluationNormDetail(); newDetail.EvaluationNormDetailID = Guid.NewGuid(); newDetail.EvaluationNormID = newEvaluationNorm.EvaluationNormID; newDetail.OrderNo = detailView.OrderNo; newDetail.Name = detailView.Name; newDetail.Weight = detailView.Weight; newDetail.Remark = detailView.Remark; SetNewStatus(newDetail); newEvaluationNormDetailInList.Add(newDetail); } } } } using (TransactionScope ts = new TransactionScope()) { UnitOfWork.Delete(x => evaluationNormIDDelList.Contains(x.EvaluationNormID)); UnitOfWork.BulkInsert(newEvaluationNormInList); UnitOfWork.BulkInsert(newEvaluationNormDetailInList); if (newEvaluationNormUpList != null && newEvaluationNormUpList.Count() > 0) { UnitOfWork.BatchUpdate(newEvaluationNormUpList); } ts.Complete(); } } else { throw new Exception("已存在相同的评分标准信息,请核查。"); } } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 删除 /// /// /// public bool EvaluationNormDelete(List evaluationNormIDs) { try { using (TransactionScope ts = new TransactionScope()) { UnitOfWork.Delete(x => evaluationNormIDs.Contains(x.EvaluationNormID)); UnitOfWork.Delete(x => evaluationNormIDs.Contains(x.EvaluationNormID)); ts.Complete(); return true; } } catch (Exception) { throw; } } } }