using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Transactions;
using YX.Entity;
namespace YX.DAL
{
public class SystemRole_Dal
{
///
/// 通过角色ID 获取角色
///
///
public List GetRoleByRoleId(string Roles_ID)
{
DataTable dt = new DataTable();
try
{
using (Sam_DBEntities db=new Sam_DBEntities())
{
//string sql = @"SELECT
// Roles_ID as '角色ID',
// ParentId as '节点位置',
// Roles_Name as '角色名称',
// Roles_Remark as '角色描述',
// SortCode as '排序',
// CreateDate as '创建日期',
// CreateUserName as '创建人',
// ModifyDate as '修改日期',
// ModifyUserName as '修改人'
// FROM Base_Roles WHERE DeleteMark != 0 and Roles_ID=@Roles_ID ORDER BY SortCode ASC";
//SqlParameter[] par = new SqlParameter[]
//{
//new SqlParameter("@Roles_ID", Roles_ID)
//};
//dt = SqlHelper.ExecuteDataset(db.Database.Connection.ConnectionString, CommandType.Text, sql, par).Tables[0];
return db.Base_Roles.Where(o=>o.DeleteMark!=0 && o.Roles_ID==Roles_ID).OrderBy(o=>o.SortCode).ToList();
}
}
catch (Exception)
{
throw;
}
}
///
/// 获取全部角色
///
///
public List GetRoles()
{
try
{
using (Sam_DBEntities db = new Sam_DBEntities())
{
return db.Base_Roles.Where(o => o.DeleteMark != 0).OrderBy(o => o.SortCode).ToList();
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 获取角色节点
///
///
public DataTable GetRoleParentId()
{
DataTable dt = new DataTable();
try
{
using (Sam_DBEntities db = new Sam_DBEntities())
{
var sql = @"SELECT Roles_ID,
Roles_Name + ' - ' + CASE ParentId WHEN '0' THEN '父节' ELSE '子节' END AS Roles_Name
FROM Base_Roles WHERE DeleteMark = 1 ORDER BY SortCode ASC";
dt = SqlHelper.ExecuteDataset(db.Database.Connection.ConnectionString, CommandType.Text, sql).Tables[0];
}
}
catch (Exception ex)
{
throw ex;
}
return dt;
}
public List GetUserRoleByUserID(string UserID)
{
try
{
using (Sam_DBEntities db=new Sam_DBEntities())
{
return db.Base_UserRole.Where(o => o.Base_UserInfo.User_ID == UserID).ToList();
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 添加角色
///
///
///
public int AddRoles(Base_Roles info)
{
try
{
int result = 0;
using (Sam_DBEntities db=new Sam_DBEntities())
{
using (TransactionScope trans = new TransactionScope())
{
// UserInfo.User_Pwd = Md5Helper.Md5("123456");
db.Base_Roles.Add(info);
result = db.SaveChanges();
trans.Complete();
return result;
}
}
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 修改角色
///
///
///
public int UpdateRoles(Base_Roles info)
{
try
{
int result = 0;
using (Sam_DBEntities db=new Sam_DBEntities())
{
using (TransactionScope trans=new TransactionScope())
{
db.Database.ExecuteSqlCommand("delete from Base_RoleRight where Roles_ID={0}",info.Roles_ID);
if (info.Base_RoleRight != null && info.Base_RoleRight.Count>0)
{
string sql_roleright = "";
foreach (var item in info.Base_RoleRight)
{
sql_roleright += string.Format(@"insert into Base_RoleRight ([RoleRight_ID]
,[Roles_ID]
,[Menu_Id]
,[CreateDate]
,[CreateUserId]
,[CreateUserName])
values('{0}','{1}','{2}','{3}','{4}','{5}');"
, Guid.NewGuid().ToString(), info.Roles_ID, item.Menu_Id, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), item.CreateUserId, item.CreateUserName);
}
db.Database.ExecuteSqlCommand(sql_roleright);
}
//把当前实体的状态改为Modified
db.Base_Roles.Attach(info);
db.Entry(info).State = EntityState.Modified;//会全部字段修改
db.Entry(info).Property("CreateDate").IsModified = false;//不修改某字段
db.Entry(info).Property("CreateUserId").IsModified = false;//不修改某字段
db.Entry(info).Property("CreateUserName").IsModified = false;//不修改某字段
result = db.SaveChanges();
trans.Complete();
return result;
}
}
}
catch (Exception ex)
{
throw ex;
}
}
public int DeleteRole(string RoleID)
{
try
{
using (Sam_DBEntities db=new Sam_DBEntities())
{
var obj = new Base_Roles { Roles_ID=RoleID };
db.Base_Roles.Attach(obj);
db.Base_Roles.Remove(obj);
return db.SaveChanges();
}
}
catch (Exception ex)
{
throw ex;
}
}
}
}