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); } } }