I would like to update if statements logic to only trigger when all of the DOMNC conditions on the sentence being amended have the same end date as the amended sentence DOMNC end date.
I still want to keep the check to ensure the amended sentence DOMNC end date is less than or equal to today
I also do not want to skip if the sentence being amended (i.e child sentence) does not have any DOMNC conditions.
Can someone help?
I forgot to add xml document. Here it is. Please note the DOMNC is in this xml document.
<Integration>
<Case>
<BaseCaseType>Adult</BaseCaseType>
<SentenceEvent ID="208093958" Date="05/03/2018" InternalSentenceEventID="1815027597">
<SentenceAmendmentReason Word="CTORDER">Court Order</SentenceAmendmentReason>
<SentenceAmendmentReason Word="MOD">Modification</SentenceAmendmentReason>
<Sentence ID="9703621" InternalSentenceID="1619846047">
<Additional>
<ConditionComponent InternalComponentInstanceID="1632369294">
<Condition>
<Type Word="DOMNC">Domestic No Contact (DANCO)</Type>
<EffectiveDate>05/01/2018</EffectiveDate>
<EndDate>05/02/2018</EndDate>
</Condition>
</ConditionComponent>
<ConditionComponent InternalComponentInstanceID="1632369295">
<Condition>
<Type Word="DOMNC">Domestic No Contact (DANCO)</Type>
<EffectiveDate>05/01/2018</EffectiveDate>
<EndDate>05/02/2018</EndDate>
</Condition>
</ConditionComponent>
</Additional>
</Sentence>
<SentenceEvent ID="208093956" Date="05/03/2018" InternalSentenceEventID="1815027595">
<Sentence ID="9703620" InternalSentenceID="1619846046">
<Additional>
<ConditionComponent InternalComponentInstanceID="1632369292">
<Condition>
<Type Word="DOMNC">Domestic No Contact (DANCO)</Type>
<EffectiveDate>05/01/2018</EffectiveDate>
<EndDate>05/02/2018</EndDate>
</Condition>
</ConditionComponent>
</Additional>
</Sentence>
</SentenceEvent>
</SentenceEvent>
</Case>
</Integration>
Here is my selector logic (if statements) in vb.net
Dim strEndDate As String = ""
Dim objXMLConditionEventNode As XmlNode
objXMLConditionEventNode = aobjXMLInputDoc.DocumentElement.SelectSingleNode("Case//SentenceEvent")
strEndDate = objXMLConditionEventNode.SelectSingleNode("Sentence/Additional/ConditionComponent/Condition[Type/@Word='DOMNC']/EndDate").InnerText
strEndDate = objXMLConditionEventNode.SelectSingleNode("Sentence/Additional/JuvenileConditionComponent/Condition[Type/@Word='DOMNC']/EndDate").InnerText
If (Not objXMLConditionEventNode.SelectSingleNode("SentenceAmendmentReason") Is Nothing) AndAlso _
(strEndDate.Length > 0) AndAlso ((CDate(strEndDate) <= Now())) AndAlso (blnIBDOMNCSCEventOnCase = True) Then
If aobjXMLInputDoc.DocumentElement.SelectSingleNode("//Integration/Case/BaseCaseType").InnerText = "Adult" Then
objXMLChildSentenceDOMNCEndDate = objXMLConditionEventNode.SelectSingleNode("SentenceEvent/Sentence/Additional/ConditionComponent/Condition[Type/@Word='DOMNC']/EndDate")
Else
objXMLChildSentenceDOMNCEndDate = objXMLConditionEventNode.SelectSingleNode("SentenceEvent/Sentence/Additional/JuvenileConditionComponent/Condition[Type/@Word='DOMNC']/EndDate")
End If
If (Not objXMLChildSentenceDOMNCEndDate Is Nothing) AndAlso (objXMLChildSentenceDOMNCEndDate.InnerText = strEndDate) Then
aobjBroker.PostMessageWarehouseInformationalMessage("Message skipped - DOMNC condition on amended sentence has the same expired", 1)
aobjBroker.PostMessageWarehouseInformationalMessage("end date as the DOMNC condition on the prior sentence.", 1)
aobjBroker.PostMessageWarehouseInformationalMessage("Note: Any existing edit failures have NOT been cleared.", 1)
Return False
End If
End If
What I have tried:
If (Not objXMLConditionEventNode.SelectSingleNode("SentenceAmendmentReason") Is Nothing) AndAlso _
(strEndDate.Length > 0) AndAlso ((CDate(strEndDate) <= Now())) AndAlso (blnIBDOMNCSCEventOnCase = True) Then
If aobjXMLInputDoc.DocumentElement.SelectSingleNode("//Integration/Case/BaseCaseType").InnerText = "Adult" Then
objXMLChildSentenceDOMNCEndDate = objXMLConditionEventNode.SelectSingleNode("SentenceEvent/Sentence/Additional/ConditionComponent/Condition[Type/@Word='DOMNC']/EndDate")
Else
objXMLChildSentenceDOMNCEndDate = objXMLConditionEventNode.SelectSingleNode("SentenceEvent/Sentence/Additional/JuvenileConditionComponent/Condition[Type/@Word='DOMNC']/EndDate")
End If
If (Not objXMLChildSentenceDOMNCEndDate Is Nothing) AndAlso (objXMLChildSentenceDOMNCEndDate.InnerText = strEndDate) Then
aobjBroker.PostMessageWarehouseInformationalMessage("Message skipped - DOMNC condition on amended sentence has the same expired", 1)
aobjBroker.PostMessageWarehouseInformationalMessage("end date as the DOMNC condition on the prior sentence.", 1)
aobjBroker.PostMessageWarehouseInformationalMessage("Note: Any existing edit failures have NOT been cleared.", 1)
Return False
End If
End If