private static OrganizationalUnitPickerService.OUElement BuildOUTree(DataTable dataTable) { Dictionary <string, OrganizationalUnitPickerService.OUElement> dictionary = new Dictionary <string, OrganizationalUnitPickerService.OUElement>(); OrganizationalUnitPickerService.OUElement ouelement = new OrganizationalUnitPickerService.OUElement(); ouelement.ID = (ouelement.Name = "root"); ouelement.CanNewSubNode = false; dictionary.Add(ouelement.Name, ouelement); foreach (object obj in dataTable.Rows) { DataRow dataRow = (DataRow)obj; ADObjectId adobjectId = (ADObjectId)dataRow["Identity"]; string text = adobjectId.ToString(); int num = OrganizationalUnitPickerService.LastSplitCharPosition(text); string key = (num == -1) ? ouelement.Name : text.Substring(0, num); if (dictionary.ContainsKey(key)) { OrganizationalUnitPickerService.OUElement ouelement2 = new OrganizationalUnitPickerService.OUElement(); ouelement2.ID = adobjectId.ObjectGuid.ToString(); ouelement2.CanNewSubNode = false; ouelement2.Name = text.Substring(num + 1); dictionary[key].Children.Add(ouelement2); dictionary.Add(text, ouelement2); } } return(ouelement); }
public static void GetListPostAction(DataRow inputRow, DataTable dataTable, DataObjectStore store) { dataTable.BeginLoadData(); DataView defaultView = dataTable.DefaultView; defaultView.Sort = "Identity asc"; OrganizationalUnitPickerService.OUElement ouelement = OrganizationalUnitPickerService.BuildOUTree(defaultView.ToTable()); dataTable.Rows.Clear(); DataRow dataRow = dataTable.NewRow(); dataRow["ID"] = ouelement.ID; dataRow["Name"] = ouelement.Name; dataRow["CanNewSubNode"] = ouelement.CanNewSubNode; dataRow["Children"] = ouelement.Children; dataTable.Rows.Add(dataRow); dataTable.EndLoadData(); }
public override bool Equals(object obj) { OrganizationalUnitPickerService.OUElement ouelement = obj as OrganizationalUnitPickerService.OUElement; return(ouelement != null && (string.Compare(base.Name, ouelement.Name) == 0 && string.Compare(base.ID, ouelement.ID) == 0 && base.CanNewSubNode == ouelement.CanNewSubNode) && this.Children.Count == ouelement.Children.Count); }