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.EvaluationSetting; using EMIS.DataLogic.EvaluationManage.EvaluationSetting; namespace EMIS.CommonLogic.EvaluationManage.EvaluationSetting { public class EvaluationNeedServices : BaseServices, IEvaluationNeedServices { public EvaluationNeedDAL EvaluationNeedDAL { get; set; } /// /// 查询对应的评价需知信息View /// /// /// /// /// /// /// public IGridResultSet GetEvaluationNeedViewGrid(ConfiguretView configuretView, int? participateTypeID, int? isEnabled, int pageIndex, int pageSize) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (participateTypeID.HasValue) { exp = exp.And(x => x.ParticipateTypeID == participateTypeID); } 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 = EvaluationNeedDAL.GetEvaluationNeedViewQueryable(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 GetEvaluationNeedViewList(ConfiguretView configuretView, int? participateTypeID, int? isEnabled) { Expression> exp = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); if (participateTypeID.HasValue) { exp = exp.And(x => x.ParticipateTypeID == participateTypeID); } 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 = EvaluationNeedDAL.GetEvaluationNeedViewQueryable(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(); } /// /// 查询对应的评价需知信息EvaluationNeedView /// /// /// public EvaluationNeedView GetEvaluationNeedView(Guid? evaluationNeedID) { try { Expression> exp = (x => x.EvaluationNeedID == evaluationNeedID); var query = EvaluationNeedDAL.GetEvaluationNeedViewQueryable(exp).SingleOrDefault(); return query; } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 查询对应的评价需知信息EvaluationNeedView /// /// /// public EvaluationNeedView GetEvaluationNeedView(int? participateTypeID) { try { Expression> expEvaluationNeed = (x => x.RecordStatus > (int)SYS_STATUS.UNUSABLE); expEvaluationNeed = expEvaluationNeed.And(x => x.IsEnabled == true); expEvaluationNeed = expEvaluationNeed.And(x => x.ParticipateTypeID == participateTypeID); var query = EvaluationNeedDAL.GetEvaluationNeedViewQueryable(expEvaluationNeed).SingleOrDefault(); return query; } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 编辑 /// /// public void EvaluationNeedEdit(EvaluationNeedView evaluationNeedView) { try { var EvaluationNeedVerify = EvaluationNeedDAL.EvaluationNeedRepository.GetList(x => x.EvaluationNeedID != evaluationNeedView.EvaluationNeedID && (x.Code == evaluationNeedView.Code.Trim() || x.Title == evaluationNeedView.Title.Trim() || x.ParticipateTypeID == evaluationNeedView.ParticipateTypeID)).SingleOrDefault(); if (EvaluationNeedVerify == null) { if (evaluationNeedView.EvaluationNeedID != Guid.Empty) { var evaluationNeed = EvaluationNeedDAL.EvaluationNeedRepository.GetList(x => x.EvaluationNeedID == evaluationNeedView.EvaluationNeedID).SingleOrDefault(); if (evaluationNeed == null) { throw new Exception("数据有误,请核查。"); } else { //表示修改 evaluationNeed.Code = evaluationNeedView.Code.Trim(); evaluationNeed.Title = evaluationNeedView.Title.Trim(); evaluationNeed.ParticipateTypeID = evaluationNeedView.ParticipateTypeID; evaluationNeed.Content = evaluationNeedView.Content; evaluationNeed.IsEnabled = evaluationNeedView.IsEnabled; evaluationNeed.Remark = evaluationNeedView.Remark; SetModifyStatus(evaluationNeed); } } else { //表示新增 var newEvaluationNeed = new EM_EvaluationNeed(); newEvaluationNeed.EvaluationNeedID = Guid.NewGuid(); newEvaluationNeed.Code = evaluationNeedView.Code.Trim(); newEvaluationNeed.Title = evaluationNeedView.Title.Trim(); newEvaluationNeed.ParticipateTypeID = evaluationNeedView.ParticipateTypeID; newEvaluationNeed.Content = evaluationNeedView.Content; newEvaluationNeed.IsEnabled = evaluationNeedView.IsEnabled; newEvaluationNeed.Remark = evaluationNeedView.Remark; SetNewStatus(newEvaluationNeed); UnitOfWork.Add(newEvaluationNeed); } } else { throw new Exception("已存在相同的评价需知信息(编号、标题或参评类型唯一),请核查。"); } UnitOfWork.Commit(); } catch (Exception ex) { throw new Exception(ex.Message); } } /// /// 删除 /// /// /// public bool EvaluationNeedDelete(List evaluationNeedIDs) { try { UnitOfWork.Delete(x => evaluationNeedIDs.Contains(x.EvaluationNeedID)); return true; } catch (Exception) { throw; } } } }