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