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