public static void UpdateUserStub( int stubId , string abbreviation , string toolTip , string url , bool openInBrowser , int width , int height , byte[] icon , bool deleteIcon) { using (DbTransaction tran = DbTransaction.Begin()) { DBWebStubs.Update(stubId, abbreviation, toolTip, url, openInBrowser, width, height); int imUserId = DBUser.GetOriginalId(Security.CurrentUser.UserID); User.IncreaseStubsVersion(imUserId); if (deleteIcon) { DBWebStubs.UpdateStubIcon(stubId, null); } else if (icon != null) { DBWebStubs.UpdateStubIcon(stubId, icon); } try { IMManager.UpdateUserWebStub(imUserId); } catch (Exception) { } tran.Commit(); } }
public static void UpdateGroupStub( int stubId , string abbreviation , string toolTip , string url , bool openInBrowser , int width , int height , byte[] icon , ArrayList groups , bool deleteIcon) { // Groups ArrayList newGroups = new ArrayList(groups); ArrayList deletedGroups = new ArrayList(); using (IDataReader reader = DBWebStubs.GetListGroupsByStub(stubId)) { while (reader.Read()) { int groupId = (int)reader["GroupId"]; if (newGroups.Contains(groupId)) { newGroups.Remove(groupId); } else { deletedGroups.Add(groupId); } } } // Users ArrayList users = new ArrayList(); foreach (int groupId in groups) { using (IDataReader reader = SecureGroup.GetListAllUsersInGroup(groupId)) { while (reader.Read()) { if (reader["OriginalId"] != DBNull.Value) { int userId = (int)reader["OriginalId"]; if (!users.Contains(userId)) { users.Add(userId); } } } } } foreach (int groupId in deletedGroups) { using (IDataReader reader = SecureGroup.GetListAllUsersInGroup(groupId)) { while (reader.Read()) { if (reader["OriginalId"] != DBNull.Value) { int userId = (int)reader["OriginalId"]; if (!users.Contains(userId)) { users.Add(userId); } } } } } using (DbTransaction tran = DbTransaction.Begin()) { DBWebStubs.Update(stubId, abbreviation, toolTip, url, openInBrowser, width, height); if (deleteIcon) { DBWebStubs.UpdateStubIcon(stubId, null); } else if (icon != null) { DBWebStubs.UpdateStubIcon(stubId, icon); } // Remove Group foreach (int groupId in deletedGroups) { DBWebStubs.DeleteStubGroup(stubId, groupId); } // Add Group foreach (int groupId in newGroups) { DBWebStubs.AddStubGroup(stubId, groupId); } // Stubs Version foreach (int userId in users) { User.IncreaseStubsVersion(userId); } try { foreach (int userId in users) { IMManager.UpdateUserWebStub(userId); } } catch (Exception) { } tran.Commit(); } }