public OrganizationInfo GetDepartInfo(string userID) { OrgUserRalation orgUserR = new OrgUserRalation(); DataTable dt = Dal.From <OrgUserRalation>().Join <OrganizationInfo>(OrgUserRalation._.DepartID == OrganizationInfo._.ID) .Where(OrgUserRalation._.UserID == userID).Select(OrganizationInfo._.ID, OrgUserRalation._.IsDefault, OrganizationInfo._.Name).ToDataTable(); if (dt.Rows.Count == 0) { return(null); } else if (dt.Rows.Count == 1) { return(dt.Rows[0].ToFirst <OrganizationInfo>()); } else { DataRow[] defaultRow = dt.Select("IsDefault='1'"); if (defaultRow != null && defaultRow.Length == 1) { return(defaultRow[0].ToFirst <OrganizationInfo>()); } else { return(dt.ToFirst <OrganizationInfo>()); } } }
public int BatchSetOrg(string[] ids, string[] orgIds, string[] companyIDS, string positionID) { int k = 0; List <OrgUserRalation> ORlist = new List <OrgUserRalation>(); List <OrgUserRalation> DeleteORlist = new List <OrgUserRalation>(); foreach (var userid in ids) { bool isDefalut = true; for (int i = 0; i < orgIds.Length; i++) { OrgUserRalation or = new OrgUserRalation(); or.ID = Guid.NewGuid().ToString(); or.CompID = companyIDS[i]; or.DepartID = orgIds[i]; or.IsDefault = isDefalut; or.UserID = userid; or.PositionID = positionID; isDefalut = false; ORlist.Add(or); OrgUserRalation deleor = new OrgUserRalation(); deleor.RecordStatus = Sharp.Common.StatusType.delete; deleor.Where = OrgUserRalation._.UserID == userid && OrgUserRalation._.DepartID == or.DepartID; DeleteORlist.Add(deleor); } } //先删后赠 Sharp.Data.SessionFactory dal = null; IDbTransaction tr = Dal.BeginTransaction(out dal); try { //删 k = dal.SubmitNew(tr, ref dal, DeleteORlist); //将原先默认排除掉 OrgUserRalation r = new OrgUserRalation(); r.Where = OrgUserRalation._.UserID.In(ids) && OrgUserRalation._.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)); }