///<summary>Pass in the user and all of the userGroups that the user should be attached to. ///Detaches the userCur from any usergroups that are not in the given list. ///Returns a count of how many user group attaches were affected.</summary> public static long SyncForUser(Userod userCur, List <long> listUserGroupNums) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { return(Meth.GetLong(MethodBase.GetCurrentMethod(), userCur, listUserGroupNums)); } long rowsChanged = 0; foreach (long userGroupNum in listUserGroupNums) { if (!userCur.IsInUserGroup(userGroupNum)) { UserGroupAttach userGroupAttach = new UserGroupAttach(); userGroupAttach.UserGroupNum = userGroupNum; userGroupAttach.UserNum = userCur.UserNum; Crud.UserGroupAttachCrud.Insert(userGroupAttach); rowsChanged++; } } foreach (UserGroupAttach userGroupAttach in UserGroupAttaches.GetForUser(userCur.UserNum)) { if (!listUserGroupNums.Contains(userGroupAttach.UserGroupNum)) { Crud.UserGroupAttachCrud.Delete(userGroupAttach.UserGroupAttachNum); rowsChanged++; } } return(rowsChanged); }
///<summary></summary> public static long Insert(UserGroupAttach userGroupAttach) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { userGroupAttach.UserGroupAttachNum = Meth.GetLong(MethodBase.GetCurrentMethod(), userGroupAttach); return(userGroupAttach.UserGroupAttachNum); } return(Crud.UserGroupAttachCrud.Insert(userGroupAttach)); }
public static void Delete(UserGroupAttach userGroupAttach) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { Meth.GetVoid(MethodBase.GetCurrentMethod(), userGroupAttach); return; } Crud.UserGroupAttachCrud.Delete(userGroupAttach.UserGroupAttachNum); }
///<summary>Does not add a new usergroupattach if the passed-in userCur is already attached to userGroup.</summary> public static void AddForUser(Userod userCur, long userGroupNum) { if (RemotingClient.RemotingRole == RemotingRole.ClientWeb) { Meth.GetVoid(MethodBase.GetCurrentMethod(), userCur, userGroupNum); return; } if (!userCur.IsInUserGroup(userGroupNum)) { UserGroupAttach userGroupAttach = new UserGroupAttach(); userGroupAttach.UserGroupNum = userGroupNum; userGroupAttach.UserNum = userCur.UserNum; Crud.UserGroupAttachCrud.Insert(userGroupAttach); } }
///<summary>Pass in a list of CEMT usergroupattaches, and this will return a list of corresponding local usergroupattaches.</summary> public static List <UserGroupAttach> TranslateCEMTToLocal(List <UserGroupAttach> listUserGroupAttachCEMT) { List <UserGroupAttach> retVal = new List <UserGroupAttach>(); List <Userod> listRemoteUsers = Userods.GetUsersNoCache(); List <UserGroup> listRemoteGroups = UserGroups.GetCEMTGroupsNoCache(); foreach (UserGroupAttach attachCur in listUserGroupAttachCEMT) { Userod userCur = listRemoteUsers.FirstOrDefault(x => attachCur.UserNum == x.UserNumCEMT); UserGroup userGroupCur = listRemoteGroups.FirstOrDefault(x => attachCur.UserGroupNum == x.UserGroupNumCEMT); if (userCur == null || userGroupCur == null) { continue; } UserGroupAttach userGroupAttachNew = new UserGroupAttach() { UserNum = userCur.UserNum, UserGroupNum = userGroupCur.UserGroupNum }; retVal.Add(userGroupAttachNew); } return(retVal); }