static void Main(string[] args) { Route4MeExamples examples = new Route4MeExamples(); DataObject dataObject = null; DataObject dataObject1 = examples.SingleDriverRoute10Stops(); dataObject = dataObject1; DataObjectRoute routeSingleDriverRoute10Stops = (dataObject != null && dataObject.Routes != null && dataObject.Routes.Length > 0) ? dataObject.Routes[0] : null; string routeId_SingleDriverRoute10Stops = (routeSingleDriverRoute10Stops != null) ? routeSingleDriverRoute10Stops.RouteID : null; if (routeSingleDriverRoute10Stops != null) examples.ResequenceRouteDestinations(routeSingleDriverRoute10Stops); else System.Console.WriteLine("ResequenceRouteDestinations not called. routeSingleDriverRoute10Stops == null."); if (routeSingleDriverRoute10Stops != null) examples.ResequenceReoptimizeRoute(routeId_SingleDriverRoute10Stops); else System.Console.WriteLine("ResequenceReoptimizeRoute not called. routeSingleDriverRoute10Stops == null."); int[] destinationIds = examples.AddRouteDestinations(routeId_SingleDriverRoute10Stops); if (destinationIds != null && destinationIds.Length > 0) { examples.RemoveRouteDestination(routeId_SingleDriverRoute10Stops, destinationIds[0]); } DataObject dataObject2 = examples.SingleDriverRoundTrip(); dataObject = dataObject2; string routeId_SingleDriverRoundTrip = (dataObject != null && dataObject.Routes != null && dataObject.Routes.Length > 0) ? dataObject.Routes[0].RouteID : null; string routeIdToMoveTo = routeId_SingleDriverRoundTrip; int routeDestinationIdToMove = (dataObject1 != null && dataObject1.Routes != null && dataObject1.Routes.Length > 0 && dataObject1.Routes[0].Addresses.Length > 1 && dataObject1.Routes[0].Addresses[1].RouteDestinationId != null) ? dataObject1.Routes[0].Addresses[1].RouteDestinationId.Value : 0; int afterDestinationIdToMoveAfter = (dataObject2 != null && dataObject2.Routes != null && dataObject2.Routes.Length > 0 && dataObject2.Routes[0].Addresses.Length > 1 && dataObject2.Routes[0].Addresses[0].RouteDestinationId != null) ? dataObject2.Routes[0].Addresses[0].RouteDestinationId.Value : 0; if (routeIdToMoveTo != null && routeDestinationIdToMove != 0 && afterDestinationIdToMoveAfter != 0) { examples.MoveDestinationToRoute(routeIdToMoveTo, routeDestinationIdToMove, afterDestinationIdToMoveAfter); } else { System.Console.WriteLine("MoveDestinationToRoute not called. routeDestinationId = {0}, afterDestinationId = {1}.", routeDestinationIdToMove, afterDestinationIdToMoveAfter); } string optimizationProblemID = examples.SingleDriverRoundTripGeneric(); dataObject = examples.MultipleDepotMultipleDriver(); string routeId_MultipleDepotMultipleDriver = (dataObject != null && dataObject.Routes != null && dataObject.Routes.Length > 0) ? dataObject.Routes[0].RouteID : null; dataObject = examples.MultipleDepotMultipleDriverTimeWindow(); string routeId_MultipleDepotMultipleDriverTimeWindow = (dataObject != null && dataObject.Routes != null && dataObject.Routes.Length > 0) ? dataObject.Routes[0].RouteID : null; dataObject = examples.SingleDepotMultipleDriverNoTimeWindow(); string routeId_SingleDepotMultipleDriverNoTimeWindow = (dataObject != null && dataObject.Routes != null && dataObject.Routes.Length > 0) ? dataObject.Routes[0].RouteID : null; dataObject = examples.MultipleDepotMultipleDriverWith24StopsTimeWindow(); string routeId_MultipleDepotMultipleDriverWith24StopsTimeWindow = (dataObject != null && dataObject.Routes != null && dataObject.Routes.Length > 0) ? dataObject.Routes[0].RouteID : null; dataObject = examples.SingleDriverMultipleTimeWindows(); string routeId_SingleDriverMultipleTimeWindows = (dataObject != null && dataObject.Routes != null && dataObject.Routes.Length > 0) ? dataObject.Routes[0].RouteID : null; if (optimizationProblemID != null) examples.GetOptimization(optimizationProblemID); else System.Console.WriteLine("GetOptimization not called. optimizationProblemID == null."); examples.GetOptimizations(); if (optimizationProblemID != null) { dataObject = examples.AddDestinationToOptimization(optimizationProblemID, true); } else { System.Console.WriteLine("AddDestinationToOptimization not called. optimizationProblemID == null."); dataObject = null; } if (optimizationProblemID != null) { Address destinationToRemove = (dataObject != null && dataObject.Addresses.Length > 0) ? dataObject.Addresses[dataObject.Addresses.Length - 1] : null; if (destinationToRemove != null) examples.RemoveDestinationFromOptimization(optimizationProblemID, destinationToRemove.RouteDestinationId.Value, false); else System.Console.WriteLine("RemoveDestinationFromOptimization not called. destinationToRemove == null."); } else System.Console.WriteLine("RemoveDestinationFromOptimization not called. optimizationProblemID == null."); if (optimizationProblemID != null) examples.ReOptimization(optimizationProblemID); else System.Console.WriteLine("ReOptimization not called. optimizationProblemID == null."); if (routeId_SingleDriverRoute10Stops != null) { examples.UpdateRoute(routeId_SingleDriverRoute10Stops); examples.ReoptimizeRoute(routeId_SingleDriverRoute10Stops); bool getRouteDirections = true; bool getRoutePathPoints = true; examples.GetRoute(routeId_SingleDriverRoute10Stops, getRouteDirections, getRoutePathPoints); } else { System.Console.WriteLine("UpdateRoute, ReoptimizeRoute, GetRoute not called. routeId_SingleDriverRoute10Stops == null."); } examples.GetRoutes(); examples.GetUsers(); if (routeId_SingleDriverRoute10Stops != null) examples.LogCustomActivity("Test User Activity " + DateTime.Now.ToString(), routeId_SingleDriverRoute10Stops); else System.Console.WriteLine("LogCustomActivity not called. routeId_SingleDriverRoute10Stops == null."); if (routeId_SingleDriverRoute10Stops != null) examples.GetActivities(routeId_SingleDriverRoute10Stops); else System.Console.WriteLine("GetActivities not called. routeId_SingleDriverRoute10Stops == null."); if (routeIdToMoveTo != null && routeDestinationIdToMove != 0) { examples.GetAddress(routeIdToMoveTo, routeDestinationIdToMove); examples.AddAddressNote(routeIdToMoveTo, routeDestinationIdToMove); examples.AddAddressNoteWithFile(routeIdToMoveTo, routeDestinationIdToMove); examples.GetAddressNotes(routeIdToMoveTo, routeDestinationIdToMove); } else { System.Console.WriteLine("AddAddressNote, GetAddress, GetAddressNotes not called. routeIdToMoveTo == null || routeDestinationIdToMove == 0."); } string routeId_DuplicateRoute = null; if (routeId_SingleDriverRoute10Stops != null) routeId_DuplicateRoute = examples.DuplicateRoute(routeId_SingleDriverRoute10Stops); else System.Console.WriteLine("DuplicateRoute not called. routeId_SingleDriverRoute10Stops == null."); //disabled by default, not necessary for optimization tests //not all accounts are capable of storing gps data /*if (routeId_SingleDriverRoute10Stops != null) { examples.SetGPSPosition(routeId_SingleDriverRoute10Stops); examples.TrackDeviceLastLocationHistory(routeId_SingleDriverRoute10Stops); } else { System.Console.WriteLine("SetGPSPosition, TrackDeviceLastLocationHistory not called. routeId_SingleDriverRoute10Stops == null."); }*/ List<string> routeIdsToDelete = new List<string>(); if (routeId_SingleDriverRoute10Stops != null) routeIdsToDelete.Add(routeId_SingleDriverRoute10Stops); if (routeId_SingleDriverRoundTrip != null) routeIdsToDelete.Add(routeId_SingleDriverRoundTrip); if (routeId_DuplicateRoute != null) routeIdsToDelete.Add(routeId_DuplicateRoute); if (routeId_MultipleDepotMultipleDriver != null) routeIdsToDelete.Add(routeId_MultipleDepotMultipleDriver); if (routeId_MultipleDepotMultipleDriverTimeWindow != null) routeIdsToDelete.Add(routeId_MultipleDepotMultipleDriverTimeWindow); if (routeId_SingleDepotMultipleDriverNoTimeWindow != null) routeIdsToDelete.Add(routeId_SingleDepotMultipleDriverNoTimeWindow); if (routeId_MultipleDepotMultipleDriverWith24StopsTimeWindow != null) routeIdsToDelete.Add(routeId_MultipleDepotMultipleDriverWith24StopsTimeWindow); if (routeId_SingleDriverMultipleTimeWindows != null) routeIdsToDelete.Add(routeId_SingleDriverMultipleTimeWindows); if (routeIdsToDelete.Count > 0) examples.DeleteRoutes(routeIdsToDelete.ToArray()); else System.Console.WriteLine("routeIdsToDelete.Count == 0. DeleteRoutes not called."); // Remove optimization if (optimizationProblemID != null) examples.RemoveOptimization(optimizationProblemID); else System.Console.WriteLine("RemoveOptimization not called. optimizationProblemID == null."); // Address Book AddressBookContact contact1 = examples.AddAddressBookContact(); AddressBookContact contact2 = examples.AddAddressBookContact(); examples.GetAddressBookContacts(); if (contact1 != null) { contact1.LastName = "Updated " + (new Random()).Next().ToString(); examples.UpdateAddressBookContact(contact1); } else { System.Console.WriteLine("contact1 == null. UpdateAddressBookContact not called."); } List<string> addressIdsToRemove = new List<string>(); if (contact1 != null) addressIdsToRemove.Add(contact1.AddressId); if (contact2 != null) addressIdsToRemove.Add(contact2.AddressId); examples.RemoveAddressBookContacts(addressIdsToRemove.ToArray()); // Avoidance Zones string territoryId = examples.AddAvoidanceZone(); examples.GetAvoidanceZones(); if (territoryId != null) examples.GetAvoidanceZone(territoryId); else System.Console.WriteLine("GetAvoidanceZone not called. territoryId == null."); if (territoryId != null) examples.UpdateAvoidanceZone(territoryId); else System.Console.WriteLine("UpdateAvoidanceZone not called. territoryId == null."); if (territoryId != null) examples.DeleteAvoidanceZone(territoryId); else System.Console.WriteLine("DeleteAvoidanceZone not called. territoryId == null."); // Orders Order order1 = examples.AddOrder(); Order order2 = examples.AddOrder(); examples.GetOrders(); if (order1 != null) { order1.LastName = "Updated " + (new Random()).Next().ToString(); examples.UpdateOrder(order1); } else { System.Console.WriteLine("order1 == null. UpdateOrder not called."); } List<string> orderIdsToRemove = new List<string>(); if (order1 != null) orderIdsToRemove.Add(order1.OrderId); if (order2 != null) orderIdsToRemove.Add(order2.OrderId); examples.RemoveOrders(orderIdsToRemove.ToArray()); examples.GenericExample(); examples.GenericExampleShortcut(); System.Console.WriteLine(""); System.Console.WriteLine("Press any key"); System.Console.ReadKey(); }