示例#1
0
        private async void OnAddCondition(object sender, RoutedEventArgs e)
        {
            try
            {
                if (_configuration == null)
                {
                    _configuration = new UtilityTraceConfiguration();
                }
                if (_configuration.Traversability == null)
                {
                    _configuration.Traversability = new UtilityTraversability();
                }

                // NOTE: You may also create a UtilityCategoryComparison with UtilityNetworkDefinition.Categories and UtilityCategoryComparisonOperator.
                if (Attributes.SelectedItem is UtilityNetworkAttribute attribute &&
                    Operators.SelectedItem is string attributeOperatorStr)
                {
                    object selectedValue;
                    UtilityAttributeComparisonOperator attributeOperator = Enum.Parse <UtilityAttributeComparisonOperator>(attributeOperatorStr);

                    // If the value is a coded value.
                    if (attribute.Domain is CodedValueDomain && ValueSelection.SelectedItem is CodedValue codedValue)
                    {
                        selectedValue = ConvertToDataType(codedValue.Code, attribute.DataType);
                    }
                    // If the value is free entry.
                    else
                    {
                        selectedValue = ConvertToDataType(ValueEntry.Text.Trim(), attribute.DataType);
                    }
                    // NOTE: You may also create a UtilityNetworkAttributeComparison with another NetworkAttribute.
                    UtilityTraceConditionalExpression expression = new UtilityNetworkAttributeComparison(attribute, attributeOperator, selectedValue);
                    if (_configuration.Traversability.Barriers is UtilityTraceConditionalExpression otherExpression)
                    {
                        // NOTE: You may also combine expressions with UtilityTraceAndCondition
                        expression = new UtilityTraceOrCondition(otherExpression, expression);
                    }
                    _configuration.Traversability.Barriers = expression;
                    ConditionBarrierExpression.Text        = ExpressionToString(expression);
                }
            }
            catch (Exception ex)
            {
                await new MessageDialog2(ex.Message, ex.Message.GetType().Name).ShowAsync();
            }
        }
 private void ComparisonSelected(UtilityAttributeComparisonOperator op)
 {
     _comparisonButton.SetTitle(op.ToString(), UIControlState.Normal);
     _selectedComparison = op;
 }
示例#3
0
 private void ComparisonSelected(object sender, DialogClickEventArgs e)
 {
     _selectedComparison    = (UtilityAttributeComparisonOperator)Enum.GetValues(typeof(UtilityAttributeComparisonOperator)).GetValue(e.Which);
     _comparisonButton.Text = _selectedComparison.ToString();
 }