using Bootstrap.Security.DataAccess; using Longbow.Cache; using Longbow.Data; using System.Collections.Generic; namespace Bootstrap.DataAccess { /// /// /// public static class AppHelper { /// /// /// public const string RetrieveAppsByRoleIdDataKey = "AppHelper-RetrieveAppsByRoleId"; /// /// 根据角色ID指派应用程序 /// /// /// public static IEnumerable RetrievesByRoleId(string roleId) => CacheManager.GetOrAdd(string.Format("{0}-{1}", RetrieveAppsByRoleIdDataKey, roleId), key => DbContextManager.Create().RetrievesByRoleId(roleId), RetrieveAppsByRoleIdDataKey); /// /// 根据角色ID以及选定的App ID,保到角色应用表 /// /// /// /// public static bool SaveByRoleId(string roleId, IEnumerable appIds) { var ret = DbContextManager.Create().SaveByRoleId(roleId, appIds); if (ret) CacheCleanUtility.ClearCache(appIds: appIds, roleIds: new List() { roleId }); return ret; } /// /// 根据指定用户名获得授权应用程序集合 /// /// /// public static IEnumerable RetrievesByUserName(string userName) => CacheManager.GetOrAdd($"{DbHelper.RetrieveAppsByUserNameDataKey}-{userName}", key => DbContextManager.Create().RetrievesByUserName(userName), DbHelper.RetrieveAppsByUserNameDataKey); } }