Skip to content

Commit fa26ae5

Browse files
Dmitry KovalDmitry Koval
authored andcommitted
Fixed ExtFieldCustomData in Route4MeSDK.DataTypes.Order
1 parent 8c115eb commit fa26ae5

File tree

2 files changed

+42
-26
lines changed

2 files changed

+42
-26
lines changed

route4me-csharp-sdk/Route4MeSDKLibrary/DataTypes/Order.cs

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System.Collections.Generic;
22
using System.Runtime.Serialization;
3-
using System.Text.Json.Serialization;
43
using Route4MeSDK.QueryTypes;
54

65
namespace Route4MeSDK.DataTypes
@@ -156,24 +155,10 @@ public sealed class Order : GenericParameters
156155
public string ExtFieldPhone { get; set; }
157156

158157
/// <summary>
159-
/// Not serialized - for prevention wrong data (e.g. Dictionary<string, string>[])
160-
/// </summary>
161-
[JsonIgnore]
162-
public Dictionary<string, string> ExtFieldCustomData
163-
{
164-
get =>
165-
ExtFieldCustomData2 != null && ExtFieldCustomData2.GetType() == typeof(Dictionary<string, string>)
166-
? (Dictionary<string, string>) ExtFieldCustomData2
167-
: null;
168-
set => ExtFieldCustomData2 = value;
169-
}
170-
171-
/// <summary>
172-
/// Custom data - serialized
158+
/// Custom data
173159
/// </summary>
174160
[DataMember(Name = "EXT_FIELD_custom_data", EmitDefaultValue = false)]
175-
private object ExtFieldCustomData2 { get; set; }
176-
161+
public Dictionary<string, string> ExtFieldCustomData { get; set; }
177162

178163
/// <summary>
179164
/// Local timezone string
@@ -212,14 +197,5 @@ public Dictionary<string, string> ExtFieldCustomData
212197
[DataMember(Name = "tracking_number", EmitDefaultValue = false)]
213198
[ReadOnly(true)]
214199
public string TrackingNumber { get; set; }
215-
216-
public bool ShouldSerializeExtFieldCustomData()
217-
{
218-
return ExtFieldCustomData == null
219-
? false
220-
: ExtFieldCustomData.GetType() == typeof(Dictionary<string, string>)
221-
? true
222-
: false;
223-
}
224200
}
225201
}

route4me-csharp-sdk/Route4MeSDKUnitTest/Route4MeManagerUnitTest.cs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11811,6 +11811,46 @@ public void AddScheduledOrderTest()
1181111811
lsOrders.Add(newOrder);
1181211812
}
1181311813

11814+
[TestMethod]
11815+
public void AddScheduledOrderAndCheckExtFieldCustomDataTest()
11816+
{
11817+
if (skip == "yes") return;
11818+
11819+
var route4Me = new Route4MeManager(c_ApiKey);
11820+
11821+
var orderParams = new Order
11822+
{
11823+
Address1 = "318 S 39th St, Louisville, KY 40212, USA",
11824+
CachedLat = 38.259326,
11825+
CachedLng = -85.814979,
11826+
CurbsideLat = 38.259326,
11827+
CurbsideLng = -85.814979,
11828+
AddressAlias = "318 S 39th St 40212",
11829+
AddressCity = "Louisville",
11830+
ExtFieldFirstName = "Lui",
11831+
ExtFieldLastName = "Carol",
11832+
ExtFieldEmail = "[email protected]",
11833+
ExtFieldPhone = "897946541",
11834+
ExtFieldCustomData = new Dictionary<string, string> { { "order_type", "scheduled order" } },
11835+
DayScheduledFor_YYYYMMDD = "2020-12-20",
11836+
LocalTimeWindowEnd = 39000,
11837+
LocalTimeWindowEnd2 = 46200,
11838+
LocalTimeWindowStart = 37800,
11839+
LocalTimeWindowStart2 = 45000,
11840+
LocalTimezoneString = "America/New_York",
11841+
OrderIcon = "emoji/emoji-bank"
11842+
};
11843+
11844+
var newOrder = route4Me.AddOrder(orderParams, out _);
11845+
11846+
Assert.IsNotNull(newOrder.ExtFieldCustomData);
11847+
Assert.IsTrue(newOrder.ExtFieldCustomData.Count == 1);
11848+
Assert.IsTrue(newOrder.ExtFieldCustomData.ContainsKey("order_type"));
11849+
Assert.IsTrue(newOrder.ExtFieldCustomData["order_type"] == "scheduled order");
11850+
11851+
lsOrders.Add(newOrder);
11852+
}
11853+
1181411854
[TestMethod]
1181511855
public void AddOrdersToOptimizationTest()
1181611856
{

0 commit comments

Comments
 (0)