private void VerifyTableRowAddedNotificationElements(RopNotifyResponse notifyResponse)
{
// The value 0x0003 of TableEventType means this notification is for TableRowAdded event,
// this method is called after notification for TableRowAdded to verify response elements.
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R12401");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R12401
// The value 0x0100 of NotificationType means that notification is for a TableModified event, cause TableRowAdded is one of the TableModified events.
// So if the TableEventType in the response is not null, this requirement can be verified.
this.Site.CaptureRequirementIfIsNotNull(
notifyResponse.NotificationData.TableEventType,
12401,
@"[In NotificationData Structure] This field [TableEventType] is available if the NotificationType value in the NotificationFlags field is 0x0100.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R17101");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R17101
// The value 0x0100 of NotificationType means that notification is for a TableModified event, cause TableRowAdded is one of the TableModified events.
// So if the FolderId in the response is null, this requirement can be verified.
this.Site.CaptureRequirementIfIsNull(
notifyResponse.NotificationData.FolderId,
17101,
@"[In NotificationData Structure] This field [FolderId] is not available if the NotificationType value in the NotificationFlags field is 0x0100.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R17502");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R17502
// The value 0x0100 of NotificationType means that notification is for a TableModified event, cause TableRowAdded is one of the TableModified events.
// So if the MessageId in the response is null, this requirement can be verified.
this.Site.CaptureRequirementIfIsNull(
notifyResponse.NotificationData.MessageId,
17502,
@"[In NotificationData Structure] This field [MessageId] is not available if the NotificationType value in the NotificationFlags field is 0x0100.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R14201");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R14201
// TableEventType with value 0x0003 means the notification is for TableRowAdded event, so if the TableRowFolderID is not null, this requirement can be verified.
this.Site.CaptureRequirementIfIsNotNull(
notifyResponse.NotificationData.TableRowFolderID,
14201,
@"[In NotificationData Structure] This field [TableRowFolderID] is available if the TableEventType field is available and is 0x0003.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R15401");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R15401
// TableEventType with value 0x0003 means the notification is for TableRowAdded event, so if the InsertAfterTableRowFolderID is not null, this requirement can be verified.
this.Site.CaptureRequirementIfIsNotNull(
notifyResponse.NotificationData.InsertAfterTableRowFolderID,
15401,
@"[In NotificationData Structure] This field [InsertAfterTableRowFolderID] is available if the TableEventType field is available and is 0x0003.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R16401");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R16401
// TableEventType with value 0x0003 means the notification is for TableRowAdded event, so if the TableRowDataSize is not null, this requirement can be verified.
this.Site.CaptureRequirementIfIsNotNull(
notifyResponse.NotificationData.TableRowDataSize,
16401,
@"[In NotificationData Structure] This field [TableRowDataSize] is available if the TableEventType field is available and is 0x0003.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R16701");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R16701
// TableEventType with value 0x0003 means the notification is for TableRowAdded event, so if the TableRowData is not null, this requirement can be verified.
this.Site.CaptureRequirementIfIsNotNull(
notifyResponse.NotificationData.TableRowData,
16701,
@"[In NotificationData Structure] This field [TableRowData] is available if the TableEventType field is available and is 0x0003.");
// FlagsBit.M is 0x8000. If FlagsBit.M & NotificationFlags is itself, indicate that M bit is set.
if ((notifyResponse.NotificationData.NotificationFlags & (ushort)FlagsBit.M) == (ushort)FlagsBit.M)
{
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R14601");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R14601
// TableEventType with value 0x0003 means the notification is for TableRowAdded event, so if the TableRowMessageID is not null, this requirement can be verified.
this.Site.CaptureRequirementIfIsNotNull(
notifyResponse.NotificationData.TableRowMessageID,
14601,
@"[In NotificationData Structure] This field [TableRowMessageID] is available if bit 0x8000 is set in the NotificationFlags field and if the TableEventType field is available and is 0x0003.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R15001");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R15001
// TableEventType with value 0x0003 means the notification is for TableRowAdded event, so if the TableRowInstance is not null, this requirement can be verified.
this.Site.CaptureRequirementIfIsNotNull(
notifyResponse.NotificationData.TableRowInstance,
15001,
@"[In NotificationData Structure] This field [TableRowInstance] is available if bit 0x8000 is set in the NotificationFlags field and if the TableEventType field is available and is 0x0003.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCNOTIF_R15801");
// Verify MS-OXCNOTIF requirement: MS-OXCNOTIF_R15801
this.Site.CaptureRequirementIfIsNotNull(
notifyResponse.NotificationData.InsertAfterTableRowID,
15801,
@"[In NotificationData Structure] This field [InsertAfterTableRowID] is available if bit 0x8000 is set in the NotificationFlags field and if the TableEventType field is available and is 0x0003.");
}
}