in Backend/src/Trackable.Services/Services/DispatchingService.cs [81:211]
public string GenerateURL(DispatchingParameters dispatchingParameters, AssetProperties assetProperties, bool isCarRoute = false)
{
var strBuilder = new StringBuilder("routeAttributes=routePath");
if (dispatchingParameters.WayPoints != null)
{
strBuilder.Append(GenerateWayPointsUri(dispatchingParameters.WayPoints));
}
else
{
throw new BadArgumentException("WayPoints must be defined");
}
if (dispatchingParameters.MaxSolutions != null)
{
strBuilder.Append(GenerateMaxSolutionsUri(dispatchingParameters.MaxSolutions));
}
if (dispatchingParameters.DistanceUnit != null)
{
strBuilder.Append(GenerateDistanceUnitUri(dispatchingParameters.DistanceUnit));
}
if (dispatchingParameters.WeightUnit != null)
{
strBuilder.Append(GenerateWeightUnitUri(dispatchingParameters.WeightUnit));
}
if (dispatchingParameters.DimensionUnit != null)
{
strBuilder.Append(GenerateDimensionUnitUri(dispatchingParameters.DimensionUnit));
}
if (isCarRoute)
{
return strBuilder.ToString();
}
if (dispatchingParameters.Optimize != null)
{
strBuilder.Append(GenerateOptimizeUri(dispatchingParameters.Optimize));
}
if (dispatchingParameters.Avoid != null && dispatchingParameters.Avoid.Count() > 0)
{
strBuilder.Append(GenerateAvoidUri(dispatchingParameters.Avoid));
}
if (dispatchingParameters.DistanceBeforeFirstTurn != null)
{
strBuilder.Append($"&distanceBeforeFirstTurn={dispatchingParameters.DistanceBeforeFirstTurn}");
}
if (dispatchingParameters.Heading != null)
{
strBuilder.Append(GenerateHeadingUri(dispatchingParameters.Heading));
}
if (dispatchingParameters.Tolerances != null)
{
strBuilder.Append(GenerateTolerancesUri(dispatchingParameters.Tolerances));
}
if (dispatchingParameters.AvoidCrossWind == true)
{
strBuilder.Append("&vehicleAvoidCrossWind=true");
}
if (dispatchingParameters.DateTime != null)
{
strBuilder.Append("&dateTime=" + dispatchingParameters.DateTime.ToString());
if (dispatchingParameters.TimeType != null)
{
strBuilder.Append(GenerateTimeTypeUri(dispatchingParameters.TimeType));
}
}
strBuilder.Append(GenerateAssetHeightUri(dispatchingParameters.LoadedHeight, assetProperties));
strBuilder.Append(GenerateAssetLengthUri(dispatchingParameters.LoadedLength, assetProperties));
strBuilder.Append(GenerateAssetWidthUri(dispatchingParameters.LoadedWidth, assetProperties));
strBuilder.Append(GenerateAssetWeightUri(dispatchingParameters.LoadedWeight, assetProperties));
if (dispatchingParameters.AvoidGroundingRisk == true)
{
strBuilder.Append("&vehicleAvoidGroundingRisk=true");
}
if (dispatchingParameters.HazardousMaterials != null && dispatchingParameters.HazardousMaterials.Count() > 0)
{
strBuilder.Append(GenerateHazardousMaterialsUri(dispatchingParameters.HazardousMaterials));
}
if (dispatchingParameters.HazardousPermits != null && dispatchingParameters.HazardousPermits.Count() > 0)
{
strBuilder.Append(GenerateHazardousPermitsUri(dispatchingParameters.HazardousPermits));
}
if (assetProperties == null)
{
return strBuilder.ToString();
}
if (assetProperties.AssetAxels != null)
{
strBuilder.Append($"&vehicleAxles={assetProperties.AssetAxels}");
}
if (assetProperties.AssetTrailers != null)
{
strBuilder.Append($"&vehicleTrailers={assetProperties.AssetTrailers}");
}
if (assetProperties.AssetSemi == true)
{
strBuilder.Append("&vehicleSemi=true");
}
if (assetProperties.AssetMaxGradient != null)
{
strBuilder.Append($"&vehicleMaxGradient={assetProperties.AssetMaxGradient}");
}
if (assetProperties.AssetMinTurnRadius != null)
{
strBuilder.Append($"&vehicleMinTurnRadius={assetProperties.AssetMinTurnRadius}");
}
return strBuilder.ToString();
}