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