protected override void HistoryDeleteRawModified(
ServerSystemContext context,
IList<DeleteRawModifiedDetails> nodesToUpdate,
IList<HistoryUpdateResult> results,
IList<ServiceResult> errors,
List<NodeHandle> nodesToProcess,
IDictionary<NodeId, NodeState> cache)
{
ComHdaClientManager system = (ComHdaClientManager)this.SystemContext.SystemHandle;
ComHdaClient client = (ComHdaClient)system.SelectClient((ServerSystemContext)SystemContext, false);
for (int ii = 0; ii < nodesToProcess.Count; ii++)
{
NodeHandle handle = nodesToProcess[ii];
DeleteRawModifiedDetails nodeToUpdate = nodesToUpdate[handle.Index];
HistoryUpdateResult result = results[handle.Index];
// check if the node id has been parsed.
HdaParsedNodeId parsedNodeId = handle.ParsedNodeId as HdaParsedNodeId;
if (parsedNodeId == null)
{
errors[handle.Index] = StatusCodes.BadNodeIdInvalid;
continue;
}
if (nodeToUpdate.IsDeleteModified)
{
errors[handle.Index] = StatusCodes.BadHistoryOperationUnsupported;
continue;
}
if (parsedNodeId.RootType == HdaModelUtils.HdaItem)
{
errors[handle.Index] = client.DeleteRaw(parsedNodeId.RootId, nodeToUpdate, results[handle.Index]);
continue;
}
errors[handle.Index] = StatusCodes.BadHistoryOperationUnsupported;
}
}