internal static int MapUpdateStatusToErrorCode(StatusCode statusCode)
{
// map bad status codes.
if (StatusCode.IsBad(statusCode))
{
switch (statusCode.Code)
{
case StatusCodes.BadOutOfMemory: { return ResultIds.E_OUTOFMEMORY; }
case StatusCodes.BadNodeIdInvalid: { return ResultIds.E_INVALIDITEMID; }
case StatusCodes.BadNodeIdUnknown: { return ResultIds.E_UNKNOWNITEMID; }
case StatusCodes.BadNotWritable: { return ResultIds.E_BADRIGHTS; }
case StatusCodes.BadUserAccessDenied: { return ResultIds.E_ACCESSDENIED; }
case StatusCodes.BadHistoryOperationInvalid: { return ResultIds.E_NOTSUPPORTED; }
case StatusCodes.BadHistoryOperationUnsupported: { return ResultIds.E_NOTSUPPORTED; }
case StatusCodes.BadOutOfRange: { return ResultIds.E_RANGE; }
case StatusCodes.BadEntryExists: { return ResultIds.E_DATAEXISTS; }
case StatusCodes.BadNoEntryExists: { return ResultIds.E_NODATAEXISTS; }
}
return ResultIds.E_FAIL;
}
// ignore uncertain and success codes.
return ResultIds.S_OK;
}
#endregion