/// <summary> /// Add Order /// </summary> /// <returns> Added Order </returns> public Order AddOrder() { // Create the manager with the api key Route4MeManager route4Me = new Route4MeManager(c_ApiKey); Order order = new Order() { Address1 = "Test Address1 " + (new Random()).Next().ToString(), AddressAlias = "Test AddressAlias " + (new Random()).Next().ToString(), CachedLatitude = 37.773972, CachedLongitude = -122.431297 }; // Run the query string errorString; Order resultOrder = route4Me.AddOrder(order, out errorString); Console.WriteLine(""); if (resultOrder != null) { Console.WriteLine("AddOrder executed successfully"); Console.WriteLine("Order ID: {0}", resultOrder.OrderId); return resultOrder; } else { Console.WriteLine("AddOrder error: {0}", errorString); return null; } }
/// <summary> /// Add Order /// </summary> /// <returns> Added Order </returns> public Order AddOrder() { // Create the manager with the api key Route4MeManager route4Me = new Route4MeManager(c_ApiKey); Order order = new Order() { address_1 = "Test Address1 " + (new Random()).Next().ToString(), address_alias = "Test AddressAlias " + (new Random()).Next().ToString(), cached_lat = 37.773972, cached_lng = -122.431297 }; // Run the query string errorString; Order resultOrder = route4Me.AddOrder(order, out errorString); Console.WriteLine(""); if (resultOrder != null) { Console.WriteLine("AddOrder executed successfully"); Console.WriteLine("Order ID: {0}", resultOrder.order_id); return(resultOrder); } else { Console.WriteLine("AddOrder error: {0}", errorString); return(null); } }
/// <summary> /// Add Order /// </summary> /// <returns> Added Order </returns> public void AddOrder() { // Create the manager with the api key var route4Me = new Route4MeManager(ActualApiKey); var order = new Order() { address_1 = "Test Address1 " + (new Random()).Next().ToString(), address_alias = "Test AddressAlias " + (new Random()).Next().ToString(), cached_lat = 37.773972, cached_lng = -122.431297 }; // Run the query Order resultOrder = route4Me.AddOrder(order, out string errorString); if (resultOrder != null && resultOrder.GetType() == typeof(Order)) { OrdersToRemove.Add(resultOrder.order_id.ToString()); } PrintExampleOrder(resultOrder, errorString); RemoveTestOrders(); }
/// <summary> /// Add Scheduled Order /// </summary> /// <returns> Added Order </returns> public Order AddScheduledOrder() { // Create the manager with the api key Route4MeManager route4Me = new Route4MeManager(c_ApiKey); Order order = new Order() { address_1 = "318 S 39th St, Louisville, KY 40212, USA", cached_lat = 38.259326, cached_lng = -85.814979, curbside_lat = 38.259326, curbside_lng = -85.814979, address_alias = "318 S 39th St 40212", address_city = "Louisville", EXT_FIELD_first_name = "Lui", EXT_FIELD_last_name = "Carol", EXT_FIELD_email = "*****@*****.**", EXT_FIELD_phone = "897946541", EXT_FIELD_custom_data = new Dictionary <string, string>() { { "order_type", "scheduled order" } }, day_scheduled_for_YYMMDD = "2017-12-20", local_time_window_end = 39000, local_time_window_end_2 = 46200, local_time_window_start = 37800, local_time_window_start_2 = 45000, local_timezone_string = "America/New_York", order_icon = "emoji/emoji-bank" }; // Run the query string errorString; Order resultOrder = route4Me.AddOrder(order, out errorString); Console.WriteLine(""); if (resultOrder != null) { Console.WriteLine("AddScheduledOrder executed successfully"); Console.WriteLine("Order ID: {0}", resultOrder.order_id); return(resultOrder); } else { Console.WriteLine("AddScheduledOrder error: {0}", errorString); return(null); } }
/// <summary> /// Add Scheduled Order /// </summary> public void AddScheduledOrder() { // Create the manager with the api key var route4Me = new Route4MeManager(ActualApiKey); var orderParams = new Order() { address_1 = "318 S 39th St, Louisville, KY 40212, USA", cached_lat = 38.259326, cached_lng = -85.814979, curbside_lat = 38.259326, curbside_lng = -85.814979, address_alias = "318 S 39th St 40212", address_city = "Louisville", EXT_FIELD_first_name = "Lui", EXT_FIELD_last_name = "Carol", EXT_FIELD_email = "*****@*****.**", EXT_FIELD_phone = "897946541", EXT_FIELD_custom_data = new Dictionary <string, string>() { { "order_type", "scheduled order" } }, day_scheduled_for_YYMMDD = "2017-12-20", local_time_window_end = 39000, local_time_window_end_2 = 46200, local_time_window_start = 37800, local_time_window_start_2 = 45000, local_timezone_string = "America/New_York", order_icon = "emoji/emoji-bank" }; var newOrder = route4Me.AddOrder(orderParams, out string errorString); PrintExampleOrder(newOrder, errorString); if (newOrder != null && newOrder.GetType() == typeof(Order)) { OrdersToRemove = new List <string>() { newOrder.order_id.ToString() } } ; RemoveTestOrders(); } }
/// <summary> /// Create an order with custom fields. /// </summary> public void CreateOrderWithCustomField() { var route4Me = new Route4MeManager(ActualApiKey); var orderParams = new Order() { address_1 = "1358 E Luzerne St, Philadelphia, PA 19124, US", cached_lat = 48.335991, cached_lng = 31.18287, day_scheduled_for_YYMMDD = "2019-10-11", address_alias = "Auto test address", CustomUserFields = new OrderCustomField[] { new OrderCustomField() { OrderCustomFieldId = 93, OrderCustomFieldValue = "false" } } }; var result = route4Me.AddOrder(orderParams, out string errorString); PrintExampleOrder(result, errorString); if (result != null && result.GetType() == typeof(Order)) { OrdersToRemove = new List <string>() { result.order_id.ToString() } } ; RemoveTestOrders(); } }
public void HybridOptimizationFrom1000Orders() { // Create the manager with the api key Route4MeManager route4Me = new Route4MeManager("11111111111111111111111111111111"); #region ======= Add scheduled address book locations to an user account ================================ string sAddressFile = @"Data/orders_1000.csv"; using (TextReader reader = File.OpenText(sAddressFile)) { var csv = new CsvReader(reader); //int iCount = 0; while (csv.Read()) { var lng = csv.GetField(0); var lat = csv.GetField(1); var alias = csv.GetField(2); var address1 = csv.GetField(3); var city = csv.GetField(4); var state = csv.GetField(5); var zip = csv.GetField(6); var phone = csv.GetField(7); var sched_date = csv.GetField(8); string sAddress = ""; if (address1 != null) { sAddress += address1.ToString().Trim(); } if (city != null) { sAddress += ", " + city.ToString().Trim(); } if (state != null) { sAddress += ", " + state.ToString().Trim(); } if (zip != null) { sAddress += ", " + zip.ToString().Trim(); } if (sAddress == "") { continue; } Order newOrder = new Order(); if (lng != null) { newOrder.cached_lat = Convert.ToDouble(lng); } if (lat != null) { newOrder.cached_lng = Convert.ToDouble(lat); } if (alias != null) { newOrder.address_alias = alias.ToString().Trim(); } newOrder.address_1 = sAddress; if (phone != null) { newOrder.EXT_FIELD_phone = phone.ToString().Trim(); } DateTime dt = DateTime.Now; if (sched_date != null) { if (DateTime.TryParse(sched_date.ToString(), out dt)) { dt = Convert.ToDateTime(sched_date); newOrder.day_scheduled_for_YYMMDD = dt.ToString("yyyy-MM-dd"); } } string errorString; Order resultOrder = route4Me.AddOrder(newOrder, out errorString); showResult(resultOrder, errorString); Thread.Sleep(1000); //iCount++; //if (iCount == 60) break; } }; #endregion Thread.Sleep(2000); #region ======= Get Hybrid Optimization ================================ TimeSpan tsp1day = new TimeSpan(1, 0, 0, 0); List <string> lsScheduledDays = new List <string>(); DateTime curDate = DateTime.Now; for (int i = 0; i < 5; i++) { curDate += tsp1day; lsScheduledDays.Add(curDate.ToString("yyyy-MM-dd")); } Address[] Depots = new Address[] { new Address { AddressString = "2017 Ambler Ave, Abilene, TX, 79603-2239", IsDepot = true, Latitude = 32.474395, Longitude = -99.7447021, CurbsideLatitude = 32.474395, CurbsideLongitude = -99.7447021 }, new Address { AddressString = "807 Ridge Rd, Alamo, TX, 78516-9596", IsDepot = true, Latitude = 26.170834, Longitude = -98.116201, CurbsideLatitude = 26.170834, CurbsideLongitude = -98.116201 }, new Address { AddressString = "1430 W Amarillo Blvd, Amarillo, TX, 79107-5505", IsDepot = true, Latitude = 35.221969, Longitude = -101.835288, CurbsideLatitude = 35.221969, CurbsideLongitude = -101.835288 }, new Address { AddressString = "3611 Ne 24Th Ave, Amarillo, TX, 79107-7242", IsDepot = true, Latitude = 35.236626, Longitude = -101.795117, CurbsideLatitude = 35.236626, CurbsideLongitude = -101.795117 }, new Address { AddressString = "1525 New York Ave, Arlington, TX, 76010-4723", IsDepot = true, Latitude = 32.720524, Longitude = -97.080195, CurbsideLatitude = 32.720524, CurbsideLongitude = -97.080195 } }; string errorString1; string errorString2; string errorString3; foreach (string ScheduledDay in lsScheduledDays) { HybridOptimizationParameters hparams = new HybridOptimizationParameters() { target_date_string = ScheduledDay, timezone_offset_minutes = 480 }; DataObject resultOptimization = route4Me.GetOHybridptimization(hparams, out errorString1); string HybridOptimizationId = ""; if (resultOptimization != null) { HybridOptimizationId = resultOptimization.OptimizationProblemId; Console.WriteLine("Hybrid optimization generating executed successfully"); Console.WriteLine("Generated hybrid optimization ID: {0}", HybridOptimizationId); } else { Console.WriteLine("Hybrid optimization generating error: {0}", errorString1); continue; } //============== Add Depot To Hybrid Optimization =============== HybridDepotParameters hDepotParams = new HybridDepotParameters() { optimization_problem_id = HybridOptimizationId, delete_old_depots = true, new_depots = new Address[] { Depots[lsScheduledDays.IndexOf(ScheduledDay)] } }; var addDepotResult = route4Me.AddDepotsToHybridOptimization(hDepotParams, out errorString3); Thread.Sleep(5000); //============== Reoptimization ================================= OptimizationParameters optimizationParameters = new OptimizationParameters() { OptimizationProblemID = HybridOptimizationId, ReOptimize = true }; DataObject finalOptimization = route4Me.UpdateOptimization(optimizationParameters, out errorString2); Console.WriteLine(""); if (finalOptimization != null) { Console.WriteLine("ReOptimization executed successfully"); Console.WriteLine("Optimization Problem ID: {0}", finalOptimization.OptimizationProblemId); Console.WriteLine("State: {0}", finalOptimization.State); } else { Console.WriteLine("ReOptimization error: {0}", errorString2); } Thread.Sleep(5000); //================================================================= } #endregion }