using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL.Inquiry;
using CY.Model;
using System.Data.SqlClient;
using System.Data;
using System.Transactions;
using CY.Infrastructure.Common;
namespace CY.SQLDAL
{
///
/// 纸张类别相关操作--SQL数据库操作
///
public class WorkBookTypeDAL:IWorkBookTypeDAL
{
private Database _dataBase = null;
public WorkBookTypeDAL()
{
_dataBase = new Database();
}
///
/// 新增纸张类别
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.SysInquiry_WorkBookType trueModel = model as Model.SysInquiry_WorkBookType;
if (trueModel == null)
{
return false;
}
SqlParameter[] parameters = {
new SqlParameter("@PaperTypeName", SqlDbType.NVarChar,100),
new SqlParameter("@Status", SqlDbType.Int,4),
new SqlParameter("@OrderNum", SqlDbType.Int,4)};
parameters[0].Value = trueModel.PaperTypeName;
parameters[1].Value = trueModel.Status;
parameters[2].Value = trueModel.OrderNum;
try
{
_dataBase.Query("SysInquiry_WorkBookType_ADD", CommandType.StoredProcedure, parameters);
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改纸张类别
///
///
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
bool isSuccess = true;
PaperInfoDAL _paperInfoDAL = new PaperInfoDAL(_dataBase);
using (TransactionScope scope = new TransactionScope())
{
Model.SysInquiry_WorkBookType trueModel = model as Model.SysInquiry_WorkBookType;
if (trueModel == null)
{
isSuccess = false;
}
else
{
SqlParameter[] parameters = {
new SqlParameter("@PaperTypeName", SqlDbType.NVarChar,100),
new SqlParameter("@Status", SqlDbType.Int,4),
new SqlParameter("@OrderNum", SqlDbType.Int,4),
new SqlParameter("@KeyId", SqlDbType.Int,4)};
parameters[0].Value = trueModel.PaperTypeName;
parameters[1].Value = trueModel.Status;
parameters[2].Value = trueModel.OrderNum;
parameters[3].Value = trueModel.KeyId;
try
{
_dataBase.Query("SysInquiry_WorkBookType_Update", CommandType.StoredProcedure, parameters);
isSuccess = true;
}
catch (Exception ex)
{
throw ex;
}
if (isSuccess)
{
SysInquiry_PaperInfo paperModel = new SysInquiry_PaperInfo();
paperModel.PaperTypeId = trueModel.KeyId;
if (trueModel.Status == 1)
{
paperModel.Status = true;
}
else
{
paperModel.Status = false;
}
isSuccess = _paperInfoDAL.UpdatePaperStatus(paperModel);
}
if (isSuccess)
scope.Complete();
}
}
return isSuccess;
}
///
/// 删除纸张类别
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
return false;
}
///
/// 分页返回纸张类别列表
///
/// 类别名称
/// 分页参数
///
public IEnumerable SelectModelPage(string typeName, int status, Infrastructure.Query.Pagination pagination)
{
string condition = string.Empty;
condition = " 1=1 ";
if (!string.IsNullOrEmpty(typeName))
{
condition = " and PaperTypeName like '%" + typeName + "%'";
}
if (status != -1)
{
condition += " and Status=" + status;
}
return _dataBase.SelectModelPage(pagination, "*", "SysInquiry_WorkBookType", "OrderNum", "OrderNum", condition);
}
///
/// 根据主键返回品牌实体
///
/// 主键ID
/// 品牌实体
public SysInquiry_WorkBookType SelectModelByKey(int keyid)
{
string condition = string.Empty;
condition = " KeyId=" + keyid;
IList result = _dataBase.SelectModel("*", "SysInquiry_WorkBookType", condition);
return null == result || result.Count == 0 ? null : result[0];
}
///
/// 判断是否有相同的纸张类别名称
///
///
///
public bool IsExistsPaperTypeName(string typeName)
{
string condition = string.Empty;
condition = " PaperTypeName='" + typeName + "'";
IList result = _dataBase.SelectModel("*", "SysInquiry_WorkBookType", condition);
if (result != null && result.Count != 0)
{
return true;
}
else
{
return false;
}
}
///
/// 返回所有有效的纸张类别列表
///
///
public IEnumerable GetPaperTypeList()
{
string condition = string.Empty;
condition = " Status=1 order by OrderNum ";
IList result = _dataBase.SelectModel("*", "SysInquiry_WorkBookType", condition);
return result;
}
///
/// 获取最新排序顺序
///
///
public int GetOrderNumByMax()
{
int orderNum = 1;
IList result = _dataBase.SelectModel(" MAX(OrderNum)+1 AS OrderNum ", "SysInquiry_WorkBookType", string.Empty);
if (result != null && result.Count > 0)
{
orderNum = result[0].OrderNum.HasValue? result[0].OrderNum.Value:1;
}
return orderNum;
}
}
}