using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EMIS.ViewModel;
using Bowin.Common.Linq.Entity;
using EMIS.ViewModel.MinorManage.MinorSetting;
using System.Linq.Expressions;
using EMIS.Entities;
using Bowin.Common.Linq;
using EMIS.DataLogic.MinorManage.MinorSetting;
namespace EMIS.CommonLogic.MinorManage.MinorSetting
{
public class MinorStandardSettingServices : BaseServices, IMinorStandardSettingServices
{
public MinorStandardSettingDAL minorStandardSettingDAL { get; set; }
///
/// 查询辅修专业设置列表
///
///
///
///
///
///
///
public IGridResultSet GetMinorControlViewGrid(ConfiguretView configuretView, int? minorStandardID, int? standardID, int pageIndex, int pageSize)
{
Expression> exp = x => true;
if (minorStandardID.HasValue)
{
exp = exp.And(x => x.MinorStandardID == minorStandardID);
}
if (standardID.HasValue)
{
exp = exp.And(x => x.StandardID == standardID);
}
var query = minorStandardSettingDAL.GetMinorStandardSettingViewQueryable(exp);
if (!string.IsNullOrEmpty(configuretView.ConditionValue) && !string.IsNullOrEmpty(configuretView.Attribute))
{
query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue);
}
query = query.OrderByDescending(x => x.StandardID).ThenByDescending(x => x.MinorStandardID);
return query.ToGridResultSet(pageIndex, pageSize);
}
///
/// 查询辅修专业设置列表(Excel)
///
///
///
///
///
///
public List GetMinorControlViewList(ConfiguretView configuretView, int? minorStandardID, int? standardID, List idList)
{
Expression> exp = x => true;
if (minorStandardID.HasValue)
{
exp = exp.And(x => x.MinorStandardID == minorStandardID);
}
if (standardID.HasValue)
{
exp = exp.And(x => x.StandardID == standardID);
}
if (idList.Count > 0 && idList != null)
{
exp = exp.And(x => idList.Contains(x.MinorStandardSettingID));
}
var query = minorStandardSettingDAL.GetMinorStandardSettingViewQueryable(exp);
if (!string.IsNullOrEmpty(configuretView.ConditionValue) && !string.IsNullOrEmpty(configuretView.Attribute))
{
query = query.DynamicWhere(configuretView.Attribute, configuretView.Condition, configuretView.ConditionValue);
}
query = query.OrderByDescending(x => x.StandardID).ThenByDescending(x => x.MinorStandardID);
return query.ToList();
}
///
/// 查询对应的辅修专业设置
///
///
///
public MinorStandardSettingView GetMinorStandardSettingView(Guid? minorStandardSettingID)
{
var query = minorStandardSettingDAL.GetMinorStandardSettingViewQueryable(x => x.MinorStandardSettingID == minorStandardSettingID);
return query.FirstOrDefault();
}
///
/// 辅修专业设置编辑(新增、修改)
///
///
public void MinorStandardSettingEdit(MinorStandardSettingView minorStandardSettingView)
{
try
{
CF_MinorStandardSetting minorStandardSetting = new CF_MinorStandardSetting();
if (minorStandardSettingView.MinorStandardSettingID == null || minorStandardSettingView.MinorStandardSettingID == Guid.Empty)
{
//新增、复制新增
minorStandardSetting = minorStandardSettingDAL.minorStandardSettingRepository
.GetSingle(x => x.StandardID == minorStandardSettingView.StandardID && x.MinorStandardID == minorStandardSettingView.MinorStandardID);
if (minorStandardSetting != null)
{
throw new Exception("已存在相同的辅修专业设置信息。");
}
minorStandardSetting = new CF_MinorStandardSetting();
minorStandardSetting.MinorStandardSettingID = Guid.NewGuid();
minorStandardSetting.StandardID = minorStandardSettingView.StandardID;
minorStandardSetting.MinorStandardID = minorStandardSettingView.MinorStandardID;
SetNewStatus(minorStandardSetting);
UnitOfWork.Add(minorStandardSetting);
}
else
{
//修改
minorStandardSetting = minorStandardSettingDAL.minorStandardSettingRepository
.GetSingle(x => x.MinorStandardSettingID != minorStandardSettingView.MinorStandardSettingID
&& x.StandardID == minorStandardSettingView.StandardID && x.MinorStandardID == minorStandardSettingView.MinorStandardID);
if (minorStandardSetting != null)
{
throw new Exception("已存在相同的辅修专业设置信息。");
}
minorStandardSetting = minorStandardSettingDAL.minorStandardSettingRepository
.GetSingle(x => x.MinorStandardSettingID == minorStandardSettingView.MinorStandardSettingID);
if (minorStandardSetting == null)
{
throw new Exception("数据有误,请核查。");
}
//minorStandardSetting.MinorStandardSettingID = minorStandardSettingView.MinorStandardSettingID
minorStandardSetting.StandardID = minorStandardSettingView.StandardID;
minorStandardSetting.MinorStandardID = minorStandardSettingView.MinorStandardID;
SetModifyStatus(minorStandardSetting);
}
UnitOfWork.Commit();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
///
/// 辅修专业设置删除
///
///
public void MinorStandardSettingDelete(IList minorStandardSettingIDList)
{
try
{
if (minorStandardSettingIDList.Count > 0)
{
UnitOfWork.Delete(x => minorStandardSettingIDList.Contains(x.MinorStandardSettingID));
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
///
/// 查找标准专业(排除已选专业)
///
///
///
///
///
public IGridResultSet GetStandardNotSelectID(int? standardID, int pageIndex, int pageSize)
{
Expression> exp = x => true;
exp = exp.And(x => x.DictionaryCode == "CF_Standard");
if(standardID.HasValue)
{
exp = exp.And(x => x.Value != standardID);
}
var query = minorStandardSettingDAL.GetStandardNotHaveSelect(exp);
return query.ToGridResultSet(pageIndex, pageSize);
}
}
}