private void SolveButton_Click(object sender, EventArgs e)
{
foreach (object o in LayoutRoot.Resources.Values)
if (o is Editor && (o as Editor).CancelActive.CanExecute(null))
(o as Editor).CancelActive.Execute(null);
MyRouteInfoWindow.IsOpen = false;
List<AttributeParameter> aps = new List<AttributeParameter>();
AttributeParameter ap = GetAttributeParameterValue(AttributeParameter2.Content.ToString().Trim());
if (ap != null)
aps.Add(ap);
GenerateBarriers();
RouteClosestFacilityParameters routeParams = new RouteClosestFacilityParameters()
{
Incidents = IncidentsGraphicsLayer.Graphics,
Barriers = pointBarriers.Count > 0 ? pointBarriers : null,
PolylineBarriers = polylineBarriers.Count > 0 ? polylineBarriers : null,
PolygonBarriers = polygonBarriers.Count > 0 ? polygonBarriers : null,
Facilities = facilitiesGraphicsLayer.Graphics,
AttributeParameterValues = aps,
ReturnDirections = ReturnDirections2.IsChecked.HasValue ? ReturnDirections2.IsChecked.Value : false,
DirectionsLanguage = String.IsNullOrEmpty(DirectionsLanguage2.Text) ? new System.Globalization.CultureInfo("en-US") : new System.Globalization.CultureInfo(DirectionsLanguage2.Text),
DirectionsLengthUnits = GetDirectionsLengthUnits(DirectionsLengthUnits2.Content.ToString().Trim()),
DirectionsTimeAttribute = DirectionsTimeAttributeName2.Text,
ReturnRoutes = ReturnRoutes2.IsChecked.HasValue ? ReturnRoutes2.IsChecked.Value : false,
ReturnFacilities = ReturnFacilities2.IsChecked.HasValue ? ReturnFacilities2.IsChecked.Value : false,
ReturnIncidents = ReturnIncidents2.IsChecked.HasValue ? ReturnIncidents2.IsChecked.Value : false,
ReturnBarriers = ReturnBarriers2.IsChecked.HasValue ? ReturnBarriers2.IsChecked.Value : false,
ReturnPolylineBarriers = ReturnPolylineBarriers2.IsChecked.HasValue ? ReturnPolylineBarriers2.IsChecked.Value : false,
ReturnPolygonBarriers = ReturnPolygonBarriers2.IsChecked.HasValue ? ReturnPolygonBarriers2.IsChecked.Value : false,
FacilityReturnType = FacilityReturnType.ServerFacilityReturnAll,
OutputLines = GetOutputLines(OutputLines2.Content.ToString().Trim()),
DefaultCutoff = string.IsNullOrEmpty(DefaultCutoff2.Text) ? 100 : double.Parse(DefaultCutoff2.Text),
DefaultTargetFacilityCount = string.IsNullOrEmpty(DefaultTargetFacilityCount2.Text) ? 1 : int.Parse(DefaultTargetFacilityCount2.Text),
TravelDirection = GetFacilityTravelDirections(TravelDirection2.Content.ToString().Trim()),
OutSpatialReference = string.IsNullOrEmpty(OutputSpatialReference2.Text) ? MyMap.SpatialReference : new SpatialReference(int.Parse(OutputSpatialReference2.Text)),
AccumulateAttributes = AccumulateAttributeNames2.Text.Split(','),
ImpedanceAttribute = ImpedanceAttributeName2.Text,
RestrictionAttributes = RestrictionAttributeNames2.Text.Split(','),
RestrictUTurns = GetRestrictUTurns(RestrictUTurns2.Content.ToString().Trim()),
UseHierarchy = UseHierarchy2.IsChecked.HasValue ? UseHierarchy2.IsChecked.Value : false,
OutputGeometryPrecision = string.IsNullOrEmpty(OutputGeometryPrecision2.Text) ? 0 : double.Parse(OutputGeometryPrecision2.Text),
OutputGeometryPrecisionUnits = GetGeometryPrecisionUnits(OutputGeometryPrecisionUnits2.Content.ToString().Trim())
};
if (myRouteTask.IsBusy)
myRouteTask.CancelAsync();
myRouteTask.SolveClosestFacilityAsync(routeParams);
}