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();
}
}
}