Пример #1
0
        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>());
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
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);
        }
Пример #4
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));
        }