using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace RoadFlow.Platform
{
public class UsersRole
{
private static string cacheKey = RoadFlow.Utility.Keys.CacheKeys.UserRoles.ToString();
private RoadFlow.Data.Interface.IUsersRole dataUsersRole;
public UsersRole()
{
this.dataUsersRole = Data.Factory.Factory.GetUsersRole();
}
///
/// 新增
///
public int Add(RoadFlow.Data.Model.UsersRole model)
{
int i = dataUsersRole.Add(model);
ClearCache();
return i;
}
///
/// 更新
///
public int Update(RoadFlow.Data.Model.UsersRole model)
{
int i = dataUsersRole.Update(model);
ClearCache();
return i;
}
///
/// 查询所有记录
///
public List GetAll()
{
return dataUsersRole.GetAll();
}
///
/// 查询单条记录
///
public RoadFlow.Data.Model.UsersRole Get(Guid userid, Guid roleid)
{
return dataUsersRole.Get(userid, roleid);
}
///
/// 删除
///
public int Delete(Guid userid, Guid roleid)
{
int i = dataUsersRole.Delete(userid, roleid);
ClearCache();
return i;
}
///
/// 查询记录条数
///
public long GetCount()
{
return dataUsersRole.GetCount();
}
///
/// 删除一个机构所有记录
///
public int DeleteByUserID(string memberID)
{
int i = dataUsersRole.DeleteByUserID(memberID);
ClearCache();
return i;
}
///
/// 删除一个角色所有记录
///
public int DeleteByRoleID(Guid roleid)
{
int i = dataUsersRole.DeleteByRoleID(roleid);
ClearCache();
return i;
}
///
/// 根据一组用户ID查询记录
///
public List GetByUserIDArray(Guid[] memberIDArray)
{
return dataUsersRole.GetByUserIDArray(memberIDArray);
}
///
/// 根据用户ID查询记录
///
public List GetByUserID(string memberID)
{
return dataUsersRole.GetByUserID(memberID);
}
///
/// 得到一个用户的所有角色
///
///
///
public List GetByUserIDFromCache(string userID)
{
var list = GetAllFromCache();
return list.FindAll(p => p.MemberID == userID);
}
///
/// 更新一个人员的所属角色
///
///
public void UpdateByUserID(string userID)
{
Organize borg=new Organize();
UsersRole busersRole = new UsersRole();
var roles = new Role().GetAll();
busersRole.DeleteByUserID(userID);
foreach (var role in roles)
{
if (role.UseMember.IsNullOrEmpty())
{
continue;
}
var users = borg.GetAllUsers(role.UseMember);
if (users.Exists(p => p.USERS_UID == userID))
{
busersRole.Add(new RoadFlow.Data.Model.UsersRole()
{
IsDefault = true,
MemberID = userID,
RoleID = role.ID
});
}
}
ClearCache();
}
///
/// 从缓存得到所有记录
///
///
public List GetAllFromCache()
{
var obj = RoadFlow.Cache.IO.Opation.Get(cacheKey);
if (obj == null || !(obj is List))
{
var list = GetAll();
RoadFlow.Cache.IO.Opation.Set(cacheKey, list);
return list;
}
else
{
return obj as List;
}
}
///
/// 清除缓存记录
///
public void ClearCache()
{
RoadFlow.Cache.IO.Opation.Remove(cacheKey);
}
}
}