private async void setChildrenButton_Click(object sender, RoutedEventArgs e) { try { if (forestTreeView.SelectedItem == null) { return; } EnableGUIWait(); // Set GUI ADObject parent = (ADObject)forestTreeView.SelectedItem; parent.GetAllChildren().ForEach(child => child.Tier = parent.Tier); forestTreeView.Focus(); if (parent.Type.Equals(ADObjectType.Domain)) { // Delete current tier label await DBConnection.Query(@" CALL db.labels() YIELD label WHERE label STARTS WITH 'Tier' WITH COLLECT(label) AS labels MATCH (n {domain:'" + parent.Name + @"'}) WHERE EXISTS(n.distinguishedname) WITH COLLECT(n) AS nodes, labels CALL apoc.create.removeLabels(nodes, labels) YIELD node RETURN NULL "); // Add new tier label await DBConnection.Query(@" MATCH (n {domain:'" + parent.Name + @"'}) WHERE EXISTS(n.distinguishedname) WITH COLLECT(n) AS nodes CALL apoc.create.addLabels(nodes, ['Tier" + parent.Tier + @"']) YIELD node RETURN NULL "); } else { // Delete current tier label await DBConnection.Query(@" CALL db.labels() YIELD label WHERE label STARTS WITH 'Tier' WITH COLLECT(label) AS labels MATCH (n) WHERE n.distinguishedname ENDS WITH '," + parent.Distinguishedname + @"' WITH COLLECT(n) AS nodes, labels CALL apoc.create.removeLabels(nodes, labels) YIELD node RETURN NULL "); // Add new tier label await DBConnection.Query(@" MATCH (n) WHERE n.distinguishedname ENDS WITH '," + parent.Distinguishedname + @"' WITH COLLECT(n) AS nodes CALL apoc.create.addLabels(nodes, ['Tier" + parent.Tier + @"']) YIELD node RETURN NULL "); } DisableGUIWait(); } catch (Exception err) { // Error MessageBox.Show(err.Message.ToString(), "Error", MessageBoxButton.OK, MessageBoxImage.Error); DisableGUIWait(); MainWindow.BackToConnectPage(); } }