我们正在使用用于QuickBooks Online的.Net SDK的IntuitCDCResponse类检索在指定时间段内发生更改的客户实体列表。确定CDC响应中的客户是否已删除
目前,我们能够检索更改的客户列表并重复列表。从这一点,如何判断客户是否已在QuickBooks Online中被删除?
docs表示当实体被删除时,该实体的status
被设置为Deleted
。我们假设此状态被传递给SDK中Customer
类的status
属性。
以下是我们目前试图用来确定客户是否已被删除的代码。
if (customer.statusSpecified && customer.status == EntityStatusEnum.Deleted)
{
// handle deletion event locally
}
正因为如此,所有的客户对象始终有一个false statusSpecified
值和status
值始终EntityStatusEnum.Deleted
,不管这是否真的是这样。我们已经多次测试已更新,创建和/或删除的客户。
我们的确尝试搜索SDK source code以获得有关Customer类如何初始化的提示,但似乎Intuit.IPP.Data命名空间在源代码中不可用。
This SO question是类似的,有些兴趣,但不讨论如何正确确定客户是否已被删除。
我相信你是误会了'customer.status'。 'status'属性继承自[IntuitEntity](https://developer-static.intuit.com/SDKDocs/QBV3Doc/IPPDotNetDevKitV3/html/f7380e23-d1a8-6520-de89-1b928bbb1d80.htm)类,并显示数据类型'EntityStatusEnum'。所以'customer.status'与'EntityStatusEnum.Deleted'的比较是可以接受的表达式。 –
'customer.statusSpecified'怎么样?我认为if语句是错误的。不应该是:'customer.statusSpecified == true && customer.status == EntityStatusEnum.Deleted' @RichC –
[Double-checked](https://developer-static.intuit.com/SDKDocs/QBV3Doc/IPPDotNetDevKitV3/ html/d879bbdf-d1f3-7054-3945-798de11b7fb9.htm)'customer.statusSpecified'。它的数据类型是'bool'。此外,'customer.statusSpecified'和'customer.statusSpecified == true'都产生相同的布尔结果并且是可接受的表达式。 'if'陈述应该是正确的。 –