private void ImportRequestBtn_Clicked(object sender, RoutedEventArgs e) { //Load a request from a JSON file. var ofd = new OpenFileDialog(); ofd.Filter = "JSON files (*.json)|*.json|All files (*.*)|*.*"; ofd.RestoreDirectory = true; var dl = ofd.ShowDialog(); if (dl.HasValue && dl.Value) { using (var fs = ofd.OpenFile()) { try { request = requestSerializer.ReadObject(fs) as OptimizeItineraryRequest; LoadRequestInsights(); } catch (Exception ex) { MessageBox.Show("Error importing request."); } } } }
/// <summary> /// Demostrates how to make a Multi-route optimization Request. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void OptimizeItineraryBtn_Clicked(object sender, RoutedEventArgs e) { var r = new OptimizeItineraryRequest() { Agents = new List <Agent>() { new Agent() { Name = "agent1", Shifts = new List <Shift>() { new Shift() { StartTimeUtc = new DateTime(2022, 1, 1, 8, 0, 0), //8 am StartLocation = new SimpleWaypoint("1603 NW 89th St, Seattle, WA 98117, US"), EndTimeUtc = new DateTime(2022, 1, 1, 18, 0, 0), //6pm EndLocation = new SimpleWaypoint(47.7070790545669, -122.355226696231), Breaks = new Break[] { new Break() { StartTimeUtc = new DateTime(2022, 1, 1, 12, 0, 0), //12pm/noon EndTimeUtc = new DateTime(2022, 1, 1, 14, 0, 0), //2pm DurationTimeSpan = new TimeSpan(0, 30, 0) //30 minutes. }, new Break() { StartTimeUtc = new DateTime(2022, 1, 1, 16, 0, 0), //4pm EndTimeUtc = new DateTime(2022, 1, 1, 16, 30, 0) //4:30pm } } } }, Price = new Price() { FixedPrice = 100, PricePerHour = 5, PricePerKM = 1 }, Capacity = new int[] { 16 } } }, ItineraryItems = new List <OptimizeItineraryItem>() { new OptimizeItineraryItem() { Name = "Customer 1", OpeningTimeUtc = new DateTime(2022, 1, 1, 9, 0, 0), //9am ClosingTimeUtc = new DateTime(2022, 1, 1, 18, 0, 0), //6pm DwellTimeSpan = new TimeSpan(0, 32, 0), //32 minutes Priority = 5, Quantity = new int[] { 4 }, //Waypoint = new SimpleWaypoint(47.692290770423,-122.385954752402), Waypoint = new SimpleWaypoint("8712 Jones Pl NW, Seattle, WA 98117, US") }, new OptimizeItineraryItem() { Name = "Customer 2", OpeningTimeUtc = new DateTime(2022, 1, 1, 9, 0, 0), //9am ClosingTimeUtc = new DateTime(2022, 1, 1, 18, 0, 0), //6pm DwellTimeSpan = new TimeSpan(1, 34, 0), //1 hour 34 minutes Priority = 16, Quantity = new int[] { -3 }, Waypoint = new SimpleWaypoint(47.6962193175262, -122.342180147243), DropOffFrom = new string[] { "Customer 3" } }, new OptimizeItineraryItem() { Name = "Customer 3", OpeningTimeUtc = new DateTime(2022, 1, 1, 9, 0, 0), //9am ClosingTimeUtc = new DateTime(2022, 1, 1, 18, 0, 0), //6pm DwellTimeSpan = new TimeSpan(1, 0, 0), //1 hour Priority = 88, Quantity = new int[] { 3 }, Waypoint = new SimpleWaypoint(47.6798098928389, -122.383036445391) }, new OptimizeItineraryItem() { Name = "Customer 4", OpeningTimeUtc = new DateTime(2022, 1, 1, 9, 0, 0), //9am ClosingTimeUtc = new DateTime(2022, 1, 1, 18, 0, 0), //6pm DwellTimeSpan = new TimeSpan(0, 25, 0), //25 minutes Priority = 3, Quantity = new int[] { -3 }, Waypoint = new SimpleWaypoint(47.6867440824094, -122.354711700877), DropOffFrom = new string[] { "Customer 1" } }, new OptimizeItineraryItem() { Name = "Customer 5", OpeningTimeUtc = new DateTime(2022, 1, 1, 9, 0, 0), //9am ClosingTimeUtc = new DateTime(2022, 1, 1, 18, 0, 0), //6pm DwellTimeSpan = new TimeSpan(0, 18, 0), //18 minutes Priority = 1, Quantity = new int[] { -1 }, Waypoint = new SimpleWaypoint(47.6846639223203, -122.364839942855), DropOffFrom = new string[] { "Customer 1" } } }, BingMapsKey = BingMapsKey }; ProcessRequest(r); }