Exemple #1
0
        /// <summary>
        /// 更新角色授权门店数据范围
        /// </summary>
        /// <param name="roleId"></param>
        /// <param name="stores"></param>
        public void UpdateRoleStores(int roleId, int[] stores)
        {
            if (!stores.Any())
            {
                throw new Exception("授权数据不能为空!");
            }
            if (roleId <= 0)
            {
                throw new Exception("非法的角色!");
            }
            using (ISession session = AuthoritySessionProvider.GetSession())
            {
                using (ITransaction transaction = session.BeginTransaction())
                {
                    session.SetBatchSize(200);
                    //删除历史记录
                    string hql = "DELETE FROM RoleStores WHERE RoleId = :p1";
                    session.CreateQuery(hql)
                    .SetParameter("p1", roleId)
                    .ExecuteUpdate();

                    foreach (var item in stores)
                    {
                        RoleStores roleStores = new RoleStores
                        {
                            RoleId  = roleId,
                            StoreId = item
                        };
                        session.SaveOrUpdate(roleStores);
                    }

                    transaction.Commit();
                }
            }
        }
        public static ApplicationRoleManager Create(IdentityFactoryOptions <ApplicationRoleManager> options, IOwinContext context)
        {
            var roleStore = new RoleStores(context.Get <QoutesEntities>());

            return(new ApplicationRoleManager(roleStore));
        }