示例#1
0
        public int BatchSetRole(string[] ids, string[] roleids)
        {
            int k = 0;
            List <RoleAndUserRalation> ORlist       = new List <RoleAndUserRalation>();
            List <RoleAndUserRalation> DeleteORlist = new List <RoleAndUserRalation>();

            foreach (var userid in ids)
            {
                bool isDefalut = true;
                for (int i = 0; i < roleids.Length; i++)
                {
                    RoleAndUserRalation or = new RoleAndUserRalation();
                    or.ID        = Guid.NewGuid().ToString();
                    or.RoleId    = roleids[i];
                    or.IsDefault = isDefalut;
                    or.UserId    = userid;
                    ORlist.Add(or);
                    isDefalut = false;

                    RoleAndUserRalation deleor = new RoleAndUserRalation();
                    deleor.RecordStatus = Sharp.Common.StatusType.delete;
                    deleor.Where        = RoleAndUserRalation._.UserId == userid && RoleAndUserRalation._.RoleId == or.RoleId;
                    DeleteORlist.Add(deleor);
                }
            }
            //先删后赠

            Sharp.Data.SessionFactory dal = null;
            IDbTransaction            tr  = Dal.BeginTransaction(out dal);

            try
            {
                //删
                k = dal.SubmitNew(tr, ref dal, DeleteORlist);
                //将原先默认排除掉
                RoleAndUserRalation r = new RoleAndUserRalation();
                r.Where        = RoleAndUserRalation._.UserId.In(ids) && RoleAndUserRalation._.IsDefault == true;
                r.RecordStatus = Sharp.Common.StatusType.update;
                r.IsDefault    = false;
                dal.Update(r, null, tr);
                //新增
                k = dal.SubmitNew(tr, ref dal, ORlist);
                dal.CommitTransaction(tr);
            }
            catch (Exception)
            {
                dal.RollbackTransaction(tr);

                throw;
            }
            return(k);
        }
示例#2
0
        public int Save(UserInfo DataObject, List <OrganizationInfo> Departlist, List <Role> Rolelist, ref string error)
        {
            List <OrgUserRalation> list = new List <OrgUserRalation>();

            foreach (var item in Departlist)
            {
                OrgUserRalation orgUserR = new OrgUserRalation();
                orgUserR.ID         = Guid.NewGuid().ToString();
                orgUserR.CompID     = item.CompID;
                orgUserR.DepartID   = item.ID;
                orgUserR.IsDefault  = item.IsDefault;
                orgUserR.PositionID = item.PositionID;
                orgUserR.UserID     = DataObject.ID;
                list.Add(orgUserR);
            }
            List <RoleAndUserRalation> rolelist = new List <RoleAndUserRalation>();

            foreach (var item in Rolelist)
            {
                RoleAndUserRalation rr = new RoleAndUserRalation();
                rr.ID        = Guid.NewGuid().ToString();
                rr.IsDefault = item.IsDefault;
                rr.RoleId    = item.ID;
                rr.UserId    = DataObject.ID;
                rolelist.Add(rr);
            }
            Sharp.Data.SessionFactory dal = null;
            IDbTransaction            tr  = Dal.BeginTransaction(out dal);
            int i = 0;

            error = "";
            try
            {
                i = dal.SubmitNew(ref dal, DataObject);
                //删除原有组织关系
                dal.Delete <OrgUserRalation>(OrgUserRalation._.UserID == DataObject.ID, tr);
                dal.SubmitNew(tr, ref dal, list);
                //删除原有角色关系
                dal.Delete <RoleAndUserRalation>(RoleAndUserRalation._.UserId == DataObject.ID, tr);
                dal.SubmitNew(tr, ref dal, rolelist);
                dal.CommitTransaction(tr);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                i     = 0;
                dal.RollbackTransaction(tr);
                throw;
            }
            return(i);
        }
示例#3
0
        public int DeleteUser(string userid)
        {
            UserInfo u = new UserInfo();

            u.ID           = userid;
            u.RecordStatus = Sharp.Common.StatusType.delete;
            OrgUserRalation or = new OrgUserRalation();

            or.Where        = OrgUserRalation._.UserID == userid;
            or.RecordStatus = Sharp.Common.StatusType.delete;
            RoleAndUserRalation rr = new RoleAndUserRalation();

            rr.Where        = RoleAndUserRalation._.UserId == userid;
            rr.RecordStatus = Sharp.Common.StatusType.delete;
            Sharp.Data.SessionFactory dal = null;
            return(Dal.SubmitNew(ref dal, u, or, rr));
        }