using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Central.Control.Domain;
using MES.Production.Service.IService;
namespace MES.Production.Service.ServiceImp
{
///
/// Service层角色授权关系接口
/// add 作者: 季健国 QQ:181589805 by 2016-05-22
///
public class RolePermissionManage : RepositoryBase,IService.IRolePermissionManage
{
IPermissionManage PermissionManage { get; set; }
///
/// 保存角色权限
///
public bool SetRolePermission(int roleId, string newper, string sysId)
{
try
{
//1、获取当前系统的模块ID集合
var permissionId = this.PermissionManage.GetPermissionIdBySysId(sysId).Cast().ToList();
//2、获取角色权限,是否存在,存在即删除,只删除当前选择的系统
if (this.IsExist(p => p.ROLEID == roleId && permissionId.Any(e => e == p.PERMISSIONID)))
{
//3、删除角色权限
this.Delete(p => p.ROLEID == roleId && permissionId.Any(e => e == p.PERMISSIONID));
}
//4、添加角色权限
if (string.IsNullOrEmpty(newper)) return true;
//Trim 保证数据安全
var str = newper.Trim(',').Split(',');
foreach (var per in str.Select(t => new SYS_ROLE_PERMISSION()
{
PERMISSIONID = int.Parse(t),
ROLEID = roleId
}))
{
this.dbSet.Add(per);
}
//5、Save
return this.Context.SaveChanges() > 0;
}
catch (Exception e) { throw e.InnerException; }
}
}
}