protected override async void OnClick() { try { string unLayerName = "Electric Utility Network"; string domainNetworkName = "ElectricTransmission"; string tierName = "AC High Voltage"; Layer unLayer = await GetLayerByName(MapView.Active.Map, unLayerName); UtilityNetwork utilityNetwork = await GetUNByLayer(unLayer); await QueuedTask.Run(() => { using (UtilityNetworkDefinition utilityNetworkDefinition = utilityNetwork.GetDefinition()) { DomainNetwork domainNetwork = utilityNetworkDefinition.GetDomainNetwork(domainNetworkName); Tier tier = domainNetwork.GetTier(tierName); using (SubnetworkManager subnetworkManager = utilityNetwork.GetSubnetworkManager()) { Subnetwork dirtySubnetwork = subnetworkManager.GetSubnetworks(tier, SubnetworkStates.Dirty).FirstOrDefault(); try { if (dirtySubnetwork != null) { SubnetworkController subnetworkController = dirtySubnetwork.GetControllers().First(); subnetworkManager.DisableControllerInEditOperation(subnetworkController.Element); utilityNetwork.ValidateNetworkTopologyInEditOperation(); dirtySubnetwork.Update(); // Redraw map and clear cache MapView.Active.Redraw(true); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } // utilityNetwork.ValidateNetworkTopology(); }); } catch (Exception ex) { MessageBox.Show($"An exception occurred: {ex.Message}"); } }
void UpdateAllDirtySubnetworks(UtilityNetwork utilityNetwork, Tier tier, MapView mapView) { #region Update all dirty subnetworks in a tier using (SubnetworkManager subnetworkManager = utilityNetwork.GetSubnetworkManager()) { IReadOnlyList <Subnetwork> subnetworks = subnetworkManager.GetSubnetworks(tier, SubnetworkStates.Dirty | SubnetworkStates.DirtyAndDeleted); foreach (Subnetwork subnetwork in subnetworks) { subnetwork.Update(); } mapView.Redraw(true); } #endregion }