/// <summary> /// Loads currently selected parent users. /// </summary> /// <param name="forceReload">Forces reload of selected values</param> private void LoadParentData(bool forceReload = false) { // Get the active child users DataSet ds = UserHierarchyInfoProvider.GetUserHierarchies(_currentSiteId).WhereEquals("ChildUserId", _currentUserId); if (!DataHelper.DataSourceIsEmpty(ds)) { _selectedParents = TextHelper.Join(selParent.ValuesSeparator.ToString(), DataHelper.GetStringValues(ds.Tables[0], "ParentUserId")); if (!URLHelper.IsPostback() || forceReload) { selParent.Value = _selectedParents; } } else { if (forceReload) { selParent.Value = string.Empty; } } // Filtering data on control for child users. selChild.WhereCondition = _currentSiteUsersFilter + (string.IsNullOrWhiteSpace(_selectedParents) ? string.Empty : $" and UserId not in ({_selectedParents})"); }
public void UserWithOneLevelChilds() { var childs = UserHierarchyInfoProvider.GetAllChilds(1, 12).ToList(); Assert.AreEqual(3, childs.Count()); Assert.Contains(14, childs); Assert.Contains(15, childs); Assert.Contains(16, childs); }
public void UserWithMultipleLevelChilds() { var childs = UserHierarchyInfoProvider.GetAllChilds(1, 7).ToList(); Assert.AreEqual(11, childs.Count()); Assert.Contains(11, childs); Assert.Contains(12, childs); Assert.Contains(13, childs); Assert.Contains(14, childs); Assert.Contains(15, childs); Assert.Contains(16, childs); Assert.Contains(2, childs); Assert.Contains(4, childs); Assert.Contains(5, childs); Assert.Contains(9, childs); Assert.Contains(10, childs); }
private void Delete_After(object sender, ObjectEventArgs e) { if (e.Object.TypeInfo.Equals(UserInfo.TYPEINFO)) { var userId = e.Object.GetIntegerValue("UserID", 0); if (userId != 0) { var userHierarchies = UserHierarchyInfoProvider.GetUserHierarchies() .WhereEquals("ParentUserId", userId) .Or() .WhereEquals("ChildUserId", userId); foreach (var uh in userHierarchies) { uh.Delete(); } } } }
public void UserWithCycledChilds() { var childs = UserHierarchyInfoProvider.GetAllChilds(1, 5).ToList(); Assert.AreEqual(4, childs.Count()); if (childs.Count() > 0) { var grouped = childs.GroupBy(v => v, v => v).Where(s => s.Count() > 1); Assert.AreEqual(0, grouped.Count()); } else { Assert.Fail(); } Assert.Contains(9, childs); Assert.Contains(10, childs); Assert.Contains(2, childs); Assert.Contains(4, childs); }
private void SelChild_OnSelectionChanged(object sender, EventArgs e) { bool reloadSecond = false; // Remove old items string newValues = ValidationHelper.GetString(selChild.Value, null); string items = DataHelper.GetNewItemsInList(newValues, _selectedChilds); if (!string.IsNullOrEmpty(items)) { var newItems = items.Split(new[] { selChild.ValuesSeparator }, StringSplitOptions.RemoveEmptyEntries); // Add all new items to site foreach (string item in newItems) { int childId = ValidationHelper.GetInteger(item, 0); UserHierarchyInfoProvider.DeleteUserHierarchyInfo(new UserHierarchyInfo { ParentUserId = _currentUserId, ChildUserId = childId, SiteId = _currentSiteId }); if (_currentUserId == childId) { reloadSecond = true; } } } // Add new items items = DataHelper.GetNewItemsInList(_selectedChilds, newValues); if (!string.IsNullOrEmpty(items)) { var newItems = items.Split(new[] { selChild.ValuesSeparator }, StringSplitOptions.RemoveEmptyEntries); // Add all new items to site foreach (string item in newItems) { int childId = ValidationHelper.GetInteger(item, 0); UserHierarchyInfoProvider.SetUserHierarchyInfo(new UserHierarchyInfo { ParentUserId = _currentUserId, ChildUserId = childId, SiteId = _currentSiteId }); if (_currentUserId == childId) { reloadSecond = true; } } } // Reload second selector if (reloadSecond) { LoadParentData(true); selParent.Reload(true); } ShowChangesSaved(); }
public void UserWithoutChilds() { var childs = UserHierarchyInfoProvider.GetAllChilds(1, 8); Assert.IsEmpty(childs); }
public void NonNullResult() { var childs = UserHierarchyInfoProvider.GetAllChilds(2, 1); Assert.IsNotNull(childs); }