using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.IDAL;
using System.Data.SqlClient;
using System.Data;
using System.Transactions;
using CY.Model;
namespace CY.SQLDAL
{
public class OA_FirmRoleDAL : IOA_FirmRoleDAL
{
private Database _dataBase = null;
public OA_FirmRoleDAL()
{
_dataBase = new Database();
}
///
/// 新增
///
///
///
public bool InserModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.OA_FirmRole trueModel = model as Model.OA_FirmRole;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@FirmId",trueModel.FirmId),
new SqlParameter("@RoleName",trueModel.RoleName),
new SqlParameter("@IsUsed",trueModel.IsUsed),
new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
new SqlParameter("@Operator",trueModel.Operator),
new SqlParameter("@Remark",trueModel.Remark)
};
try
{
_dataBase.Query("sp_OA_FirmRole_Insert", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 修改
///
///
///
public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.OA_FirmRole trueModel = model as Model.OA_FirmRole;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{new SqlParameter("@Keyid",trueModel.Keyid),
new SqlParameter("@FirmId",trueModel.FirmId),
new SqlParameter("@RoleName",trueModel.RoleName),
new SqlParameter("@IsUsed",trueModel.IsUsed),
new SqlParameter("@LastUpdateTime",trueModel.LastUpdateTime),
new SqlParameter("@Operator",trueModel.Operator),
new SqlParameter("@Remark",trueModel.Remark)
};
try
{
_dataBase.Query("sp_OA_FirmRole_Update", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除
///
///
///
public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model)
{
Model.OA_FirmRole trueModel = model as Model.OA_FirmRole;
if (trueModel == null)
{
return false;
}
IList sqlParms = new List()
{
new SqlParameter("@Keyid",trueModel.Keyid)
};
try
{
_dataBase.Query("sp_OA_FirmRole_DeleteRow", CommandType.StoredProcedure, sqlParms.ToArray());
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 删除角色以及角色的权限
///
///
///
public bool DeleteRole(Infrastructure.Domain.IAggregateRoot model)
{
OA_FirmRolePermissionsRelDAL dal_OA_FirmRolePermissionsRelDAL = new OA_FirmRolePermissionsRelDAL(_dataBase);
Model.Sys_Permissions_Role trueModel = model as Model.Sys_Permissions_Role;
if (trueModel == null)
{
return false;
}
try
{
using (TransactionScope transactionscope = new TransactionScope())
{
DeleteModel(model);
List m_OA_FirmRolePermissionsRelList = dal_OA_FirmRolePermissionsRelDAL.SelectListByRoleId(trueModel.Keyid) as List;
foreach (var item in m_OA_FirmRolePermissionsRelList)
{
dal_OA_FirmRolePermissionsRelDAL.DeleteModel(item);
}
transactionscope.Complete();
}
}
catch (Exception ex)
{
throw ex;
}
return true;
}
///
/// 分页查询
///
///
///
///
public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination)
{
throw new NotImplementedException();
}
///
/// 单个查询
///
///
///
public IEnumerable SelectAllModel(Infrastructure.Query.Query query)
{
throw new NotImplementedException();
}
///
/// 根据厂商编号查询全部角色
///
///
///
public IEnumerable SelectList(Guid FirmId)
{
try
{
IList result = _dataBase.SelectModel("*", "OA_FirmRole", " FirmId='" + FirmId + "' ") as IList;//执行查询
return result;//返回结果
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据编号查询单个角色
///
///
///
public OA_FirmRole SelectModel(int? Keyid)
{
if (Keyid == null || Keyid <= 0)
return null;
IList result = _dataBase.SelectModel("*", "OA_FirmRole", string.Format(" Keyid='{0}' ", Keyid)) as IList;//执行查询
if (result != null && result.Count > 0)
{
return result[0];
}
else
{
return null;//返回结果
}
}
///
/// 编辑角色权限
///
///
///
///
///
public bool EditMenusRole(int? Roleid,Guid FirmId, Dictionary MenusJionRole)
{
try
{
using (TransactionScope transactionscope = new TransactionScope())
{
OA_FirmRolePermissionsRelDAL dal_OA_FirmRolePermissionsRelDAL = new OA_FirmRolePermissionsRelDAL(_dataBase);
List m_OA_FirmRolePermissionsRelList = dal_OA_FirmRolePermissionsRelDAL.SelectListByRoleId(Roleid) as List;
if (m_OA_FirmRolePermissionsRelList != null && m_OA_FirmRolePermissionsRelList.Count > 0)
{
dal_OA_FirmRolePermissionsRelDAL.DeleteModel(m_OA_FirmRolePermissionsRelList[0]);
}
foreach (var itemMenuAll in MenusJionRole)
{
string Menu = itemMenuAll.Key;
string Role = itemMenuAll.Value;
string[] MenuArry = Menu.Split('-');
string MenusOne = MenuArry[0];
string MenusTwo = MenuArry[1];
string MenusThree = MenuArry[2];
OA_FirmRolePermissionsRel m_OA_FirmRolePermissionsRel = new OA_FirmRolePermissionsRel();
m_OA_FirmRolePermissionsRel.MenuIdOne = Convert.ToInt32(MenusOne);
m_OA_FirmRolePermissionsRel.MenuIdTwo = Convert.ToInt32(MenusTwo);
m_OA_FirmRolePermissionsRel.MenuIdThree = Convert.ToInt32(MenusThree);
m_OA_FirmRolePermissionsRel.RoleId = Roleid;
m_OA_FirmRolePermissionsRel.FirmId = FirmId;
m_OA_FirmRolePermissionsRel.FuncGroup = Role.ToString().Trim(',');
dal_OA_FirmRolePermissionsRelDAL.InserModel(m_OA_FirmRolePermissionsRel);
}
transactionscope.Complete();
}
return true;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 根据角色获取一级菜单
///
/// 角色编号
///
public List MenusOneList(int? RoleId)
{
string condition = "";
if (RoleId > 0)
{
condition = "where RoleId = '" + RoleId + "'";
}
List result = _dataBase.SelectModel("*", "Sys_Permissions_Menu", " Keyid in ( select MenuIdOne from OA_FirmRolePermissionsRel " + condition + ") order by OrderCode Asc") as IList as List;//执行查询
return result;//返回结果
}
///
/// 根据一级菜单获取二级菜单
///
/// 一级菜单
///
public List MenusTwoList(int? MenuIdOne, int? RoleId)
{
string condition = "";
if (RoleId > 0 && MenuIdOne>0)
{
condition = "where MenuIdOne = '" + MenuIdOne + "' and RoleId ='" + RoleId + "'";
}
List result = _dataBase.SelectModel("*", "Sys_Permissions_Menu", " Keyid in ( select MenuIdTwo from OA_FirmRolePermissionsRel " + condition + ") order by OrderCode Asc") as IList as List;//执行查询
return result;//返回结果
}
///
/// 根据二级菜单获取三级菜单
///
/// 二级菜单
///
public List MenusThreeList(int? MenuIdTwo, int? RoleId)
{
string condition = "";
if (RoleId > 0 && MenuIdTwo > 0)
{
condition = "where MenuIdTwo = '" + MenuIdTwo + "' and RoleId ='" + RoleId + "'";
}
List result = _dataBase.SelectModel("*", "Sys_Permissions_Menu", " Keyid in ( select MenuIdThree from OA_FirmRolePermissionsRel " + condition + ") order by OrderCode Asc") as IList as List;//执行查询
return result;//返回结果
}
}
}