Skip to content

Commit 6192850

Browse files
authored
Fix Utility Network Samples (#1742)
1 parent a72ee35 commit 6192850

File tree

4 files changed

+58
-33
lines changed

4 files changed

+58
-33
lines changed

src/MAUI/Maui.Samples/Samples/UtilityNetwork/ConfigureSubnetworkTrace/ConfigureSubnetworkTrace.xaml.cs

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,12 @@ public partial class ConfigureSubnetworkTrace : ContentPage
2525
// Feature service for an electric utility network in Naperville, Illinois.
2626
private const string FeatureServiceUrl = "https://sampleserver7.arcgisonline.com/server/rest/services/UtilityNetwork/NapervilleElectric/FeatureServer";
2727
private UtilityNetwork _utilityNetwork;
28-
private UtilityTier _sourceTier;
2928

3029
// For creating the default starting location.
3130
private const string DeviceTableName = "Electric Distribution Device";
32-
private const string AssetGroupName = "Service Point";
33-
private const string AssetTypeName = "Three Phase Low Voltage Meter";
34-
private const string GlobalId = "{3AEC2649-D867-4EA7-965F-DBFE1F64B090}";
31+
private const string AssetGroupName = "Circuit Breaker";
32+
private const string AssetTypeName = "Three Phase";
33+
private const string GlobalId = "{1CAF7740-0BF4-4113-8DB2-654E18800028}";
3534
private UtilityElement _startingLocation;
3635

3736
// For creating the default trace configuration.
@@ -41,6 +40,9 @@ public partial class ConfigureSubnetworkTrace : ContentPage
4140
// Holding the initial conditional expression.
4241
private UtilityTraceConditionalExpression _initialExpression;
4342

43+
// The trace configuration.
44+
private UtilityTraceConfiguration _configuration;
45+
4446
public ConfigureSubnetworkTrace()
4547
{
4648
InitializeComponent();
@@ -88,16 +90,20 @@ private async Task Initialize()
8890

8991
// Get a default trace configuration from a tier to update the UI.
9092
UtilityDomainNetwork domainNetwork = _utilityNetwork.Definition.GetDomainNetwork(DomainNetworkName);
91-
_sourceTier = domainNetwork.GetTier(TierName);
93+
UtilityTier sourceTier = domainNetwork.GetTier(TierName);
94+
95+
// Set the trace configuration.
96+
_configuration = sourceTier.GetDefaultTraceConfiguration();
9297

93-
if (_sourceTier.GetDefaultTraceConfiguration().Traversability.Barriers is UtilityTraceConditionalExpression expression)
98+
// Set the default expression (if provided).
99+
if (_configuration.Traversability.Barriers is UtilityTraceConditionalExpression expression)
94100
{
95101
ConditionBarrierExpression.Text = ExpressionToString(expression);
96102
_initialExpression = expression;
97103
}
98104

99105
// Set the traversability scope.
100-
_sourceTier.GetDefaultTraceConfiguration().Traversability.Scope = UtilityTraversabilityScope.Junctions;
106+
_configuration.Traversability.Scope = UtilityTraversabilityScope.Junctions;
101107
}
102108
catch (Exception ex)
103109
{
@@ -191,7 +197,7 @@ private async void OnTrace(object sender, System.EventArgs e)
191197
{
192198
// Create utility trace parameters for the starting location.
193199
UtilityTraceParameters parameters = new UtilityTraceParameters(UtilityTraceType.Subnetwork, new[] { _startingLocation });
194-
parameters.TraceConfiguration = _sourceTier.GetDefaultTraceConfiguration();
200+
parameters.TraceConfiguration = _configuration;
195201

196202
// Trace the utility network.
197203
IEnumerable<UtilityTraceResult> results = await _utilityNetwork.TraceAsync(parameters);
@@ -211,23 +217,21 @@ private async void OnTrace(object sender, System.EventArgs e)
211217
private void OnReset(object sender, System.EventArgs e)
212218
{
213219
// Reset the barrier condition to the initial value.
214-
UtilityTraceConfiguration traceConfiguration = _sourceTier.GetDefaultTraceConfiguration();
215-
traceConfiguration.Traversability.Barriers = _initialExpression;
220+
_configuration.Traversability.Barriers = _initialExpression;
216221
ConditionBarrierExpression.Text = ExpressionToString(_initialExpression);
217222
}
218223

219224
private async void OnAddCondition(object sender, EventArgs e)
220225
{
221226
try
222227
{
223-
UtilityTraceConfiguration traceConfiguration = _sourceTier.GetDefaultTraceConfiguration();
224-
if (traceConfiguration == null)
228+
if (_configuration == null)
225229
{
226-
traceConfiguration = new UtilityTraceConfiguration();
230+
_configuration = new UtilityTraceConfiguration();
227231
}
228-
if (traceConfiguration.Traversability == null)
232+
if (_configuration.Traversability == null)
229233
{
230-
traceConfiguration.Traversability = new UtilityTraversability();
234+
_configuration.Traversability = new UtilityTraversability();
231235
}
232236

233237
// NOTE: You may also create a UtilityCategoryComparison with UtilityNetworkDefinition.Categories and UtilityCategoryComparisonOperator.
@@ -247,12 +251,12 @@ private async void OnAddCondition(object sender, EventArgs e)
247251
}
248252
// NOTE: You may also create a UtilityNetworkAttributeComparison with another NetworkAttribute.
249253
UtilityTraceConditionalExpression expression = new UtilityNetworkAttributeComparison(attribute, attributeOperator, otherValue);
250-
if (traceConfiguration.Traversability.Barriers is UtilityTraceConditionalExpression otherExpression)
254+
if (_configuration.Traversability.Barriers is UtilityTraceConditionalExpression otherExpression)
251255
{
252256
// NOTE: You may also combine expressions with UtilityTraceAndCondition
253257
expression = new UtilityTraceOrCondition(otherExpression, expression);
254258
}
255-
traceConfiguration.Traversability.Barriers = expression;
259+
_configuration.Traversability.Barriers = expression;
256260
ConditionBarrierExpression.Text = ExpressionToString(expression);
257261
}
258262
}
@@ -264,12 +268,12 @@ private async void OnAddCondition(object sender, EventArgs e)
264268

265269
private void IncludeBarriersChanged(object sender, ToggledEventArgs e)
266270
{
267-
_sourceTier.GetDefaultTraceConfiguration().IncludeBarriers = e.Value;
271+
_configuration.IncludeBarriers = e.Value;
268272
}
269273

270274
private void IncludeContainersChanged(object sender, ToggledEventArgs e)
271275
{
272-
_sourceTier.GetDefaultTraceConfiguration().IncludeContainers = e.Value;
276+
_configuration.IncludeContainers = e.Value;
273277
}
274278
}
275279
}

src/MAUI/Maui.Samples/Samples/UtilityNetwork/PerformValveIsolationTrace/PerformValveIsolationTrace.xaml.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,10 @@ private async void OnTrace(object sender, EventArgs e)
161161
_configuration.IncludeIsolatedFeatures = IncludeIsolatedFeatures.IsToggled;
162162

163163
// Build parameters for isolation trace.
164-
UtilityTraceParameters parameters = new UtilityTraceParameters(UtilityTraceType.Isolation, new[] { _startingLocation });
165-
parameters.TraceConfiguration = _configuration;
164+
_parameters.TraceConfiguration = _configuration;
166165

167166
// Get the trace result from trace.
168-
IEnumerable<UtilityTraceResult> traceResult = await _utilityNetwork.TraceAsync(parameters);
167+
IEnumerable<UtilityTraceResult> traceResult = await _utilityNetwork.TraceAsync(_parameters);
169168
UtilityElementTraceResult elementTraceResult = traceResult?.FirstOrDefault() as UtilityElementTraceResult;
170169

171170
// Select all the features from the result.

src/WinUI/ArcGIS.WinUI.Viewer/Samples/UtilityNetwork/ConfigureSubnetworkTrace/ConfigureSubnetworkTrace.xaml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,22 @@
3232

3333
<!-- NOTE that There are also: IncludeContent, IncludeStructures, IgnoreBarriersAtStartingPoints, ValidateConsistency -->
3434

35-
<CheckBox Grid.Column="1"
35+
<CheckBox x:Name="IncludeBarriersCheckBox"
36+
Grid.Column="1"
3637
Margin="5"
3738
Content="Include Barriers"
3839
FontSize="15"
39-
IsChecked="{Binding IncludeBarriers}" />
40-
<CheckBox Grid.Column="2"
40+
IsChecked="True"
41+
Checked="OnIncludeBarriersChanged"
42+
Unchecked="OnIncludeBarriersChanged" />
43+
<CheckBox x:Name="IncludeContainersCheckBox"
44+
Grid.Column="2"
4145
Margin="5"
4246
Content="Include Containers"
4347
FontSize="15"
44-
IsChecked="{Binding IncludeContainers}" />
48+
IsChecked="True"
49+
Checked="OnIncludeContainersChanged"
50+
Unchecked="OnIncludeContainersChanged" />
4551

4652
<!-- Row 2 -->
4753
<TextBlock Grid.Row="1"

src/WinUI/ArcGIS.WinUI.Viewer/Samples/UtilityNetwork/ConfigureSubnetworkTrace/ConfigureSubnetworkTrace.xaml.cs

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,17 +103,18 @@ private async Task Initialize()
103103
_configuration = sourceTier.GetDefaultTraceConfiguration();
104104

105105
// Set the default expression (if provided).
106-
if (sourceTier.GetDefaultTraceConfiguration().Traversability.Barriers is UtilityTraceConditionalExpression expression)
106+
if (_configuration.Traversability.Barriers is UtilityTraceConditionalExpression expression)
107107
{
108108
ConditionBarrierExpression.Text = ExpressionToString(expression);
109109
_initialExpression = expression;
110110
}
111111

112-
// Setting DataContext will resolve the data-binding in XAML.
113-
Configuration.DataContext = _configuration;
114-
115112
// Set the traversability scope.
116-
sourceTier.GetDefaultTraceConfiguration().Traversability.Scope = UtilityTraversabilityScope.Junctions;
113+
_configuration.Traversability.Scope = UtilityTraversabilityScope.Junctions;
114+
115+
// Initialize the checkboxes to match the configuration.
116+
IncludeBarriersCheckBox.IsChecked = _configuration.IncludeBarriers;
117+
IncludeContainersCheckBox.IsChecked = _configuration.IncludeContainers;
117118
}
118119
catch (Exception ex)
119120
{
@@ -274,9 +275,24 @@ private void OnAttributeChanged(object sender, SelectionChangedEventArgs e)
274275
private void OnReset(object sender, RoutedEventArgs e)
275276
{
276277
// Reset the barrier condition to the initial value.
277-
UtilityTraceConfiguration traceConfiguration = _configuration;
278-
traceConfiguration.Traversability.Barriers = _initialExpression;
278+
_configuration.Traversability.Barriers = _initialExpression;
279279
ConditionBarrierExpression.Text = ExpressionToString(_initialExpression);
280280
}
281+
282+
private void OnIncludeBarriersChanged(object sender, RoutedEventArgs e)
283+
{
284+
if (_configuration != null)
285+
{
286+
_configuration.IncludeBarriers = IncludeBarriersCheckBox.IsChecked == true;
287+
}
288+
}
289+
290+
private void OnIncludeContainersChanged(object sender, RoutedEventArgs e)
291+
{
292+
if (_configuration != null)
293+
{
294+
_configuration.IncludeContainers = IncludeContainersCheckBox.IsChecked == true;
295+
}
296+
}
281297
}
282298
}

0 commit comments

Comments
 (0)