我有一个应用程序,我通过Shopify webhooks获得Shopify订单。现在我有一个问题是,当我只有一个客户端时,我MapShopify通过传统的方式接收订单,并将其保存到数据库中。
现在我又有了两个客户端,所有客户端都希望根据它们Map类字段。
假设我有一个Shopify订单对象,包含以下详细信息:
{
"id": 4655316533326,
"checkout_id": 29212941516878,
"user_id": 71894499406,
"note": "hello world",
"subtotal_price_set": {
"shop_money": {
"amount": "109.00",
"currency_code": "USD"
}
"total_tax": "0.00",
"total_tax_set": {
"shop_money": {
"amount": "0.00",
"currency_code": "USD"
},
"presentment_money": {
"amount": "0.00",
"currency_code": "USD"
}
}
}
我的应用程序中也有一个名为Order的类,它包含以下一些属性:
public class Order {
public string OrderNo { get; set; }
public string DebtorID { get; set; }
public virtual string DeliveryAddress1 { get; set; }
public virtual string DeliveryAddress2 { get; set; }
public virtual string RIRTNo { get; set; }
public List<OrderLine> Lines { get; set; }
public string OrderNote { get; set; }
Public Customer Customer { get; set; }
}
现在,一些客户希望我将shopify order Note
属性Map到我的Order.Customer.Note
且想要将Note
属性Map为Order.Note
与OrderNo
相同。一个人想直接用Order.OrderNoMap它,另一个人想用'RIRTNo''Map它
如何处理这种情况?
我在数据库上创建了一个表来保存这些Map信息。
我可以从Shopify订单中获取客户详细信息,然后进行数据库查询以获取Map信息,但问题是数据库中的详细信息是字典式结构。
考虑以下x客户的Map信息:关键字是Shopify对象属性
"Order": {
"note": "Customer.Note"
"Id": "OrderId"
}
key
是Shopify属性名,value
是我的应用程序对象名,但我不知道如何根据这些信息创建它们。
2条答案
按热度按时间iqih9akk1#
基本上,这取决于客户的想法。
所以如果你还没有任何办法Map的话。
您可以将您的客户分成3或4个或更多的组。
则可以使用工厂设计模式
也可以根据新字段“CustomerGroupId”使用“if”语句,该字段应随实体一起添加到代码中
然后道:
ct2axkht2#
一个非常简单的选择是使用
Order
类中的“mapping info”,然后修改OrderNote
属性以使用该Map来获取/设置注解。例如,建立提供Map的方法:
然后
OrderNote
变为:对每种类型的Map使用相同的模式。