/// <summary> /// Verify the EntityExtractionResultType structure /// </summary> /// <param name="entityExtractionResult">An array of EntityExtractionResultType instances.</param> private void VerifyEntityExtractionResultType(EntityExtractionResultType entityExtractionResult) { if (entityExtractionResult.Addresses != null) { if (Common.IsRequirementEnabled(1749, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1749"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1749 // The Addresses element is ArrayOfAddressEntitiesType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1749, @"[In Appendix C: Product Behavior] Implementation does use the ArrayOfAddressEntitiesType complex type which represents an array of address entities. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfAddressEntitiesType""> <xs:sequence> <xs:element name=""AddressEntity"" type=""t:AddressEntityType"" minOccurs=""0"" maxOccurs=""unbounded""/> </xs:sequence> </xs:complexType>"); } Site.Assert.AreEqual<int>( 1, entityExtractionResult.Addresses.Length, string.Format( "There should be one address information in the entity extraction result, actual {0}.", entityExtractionResult.Addresses.Length)); if (Common.IsRequirementEnabled(1753, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1753"); // The address element is AddressEntityType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirementIfIsNotNull( entityExtractionResult.Addresses[0], 1753, @"[In Appendix C: Product Behavior] Implementation does use the AddressEntityType complex type which extends the EntityType complex type, as specified by section 2.2.4.38. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""AddressEntityType""> <xs:complexContent> <xs:extension base=""t:EntityType""> <xs:sequence> <xs:element name=""Address"" type=""xs:string"" minOccurs=""0""/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>. "); this.VerifyEntityType(entityExtractionResult.Addresses[0]); } } if (entityExtractionResult.MeetingSuggestions != null) { if (Common.IsRequirementEnabled(1275, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1275"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1275 // The MeetingSuggestions element is ArrayOfMeetingSuggestionsType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1275, @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfMeetingSuggestionsType complex type which specifies an array of meeting suggestions. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfMeetingSuggestionsType""> <xs:sequence> <xs:element name=""MeetingSuggestion"" type=""t:MeetingSuggestionType"" maxOccurs=""unbounded"" /> </xs:sequence> </xs:complexType>"); } Site.Assert.AreEqual<int>( 1, entityExtractionResult.MeetingSuggestions.Length, string.Format( "There should be one meeting suggestion information in the entity extraction result, actual {0}.", entityExtractionResult.MeetingSuggestions.Length)); if (Common.IsRequirementEnabled(1276, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1276"); // The meetingSuggestion element is MeetingSuggestionType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirementIfIsNotNull( entityExtractionResult.MeetingSuggestions[0], 1276, @"[In Appendix C: Product Behavior] Implementation does support the MeetingSuggestionType complex type which specifies a meeting suggestion. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""MeetingSuggestionType""> <xs:sequence> <xs:element name=""Attendees"" type=""t:ArrayOfEmailUsersType"" minOccurs=""0"" maxOccurs=""1"" /> <xs:element name=""Location"" type=""xs:string"" minOccurs=""0"" /> <xs:element name=""Subject"" type=""xs:string"" minOccurs=""0"" /> <xs:element name=""MeetingString"" type=""xs:string"" minOccurs=""0"" /> <xs:element name=""StartTime"" type=""xs:dateTime"" minOccurs=""0"" /> <xs:element name=""EndTime"" type=""xs:dateTime"" minOccurs=""0"" /> </xs:sequence> </xs:complexType>"); this.VerifyEntityType(entityExtractionResult.MeetingSuggestions[0]); } } if (entityExtractionResult.TaskSuggestions != null) { if (Common.IsRequirementEnabled(1277, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1277"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1277 // The TaskSuggestions element is ArrayOfTaskSuggestionsType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1277, @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfTaskSuggestionsType complex type which specifies an array of task suggestions.(Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfTaskSuggestionsType""> <xs:sequence> <xs:element name=""TaskSuggestion"" type=""t:TaskSuggestionType"" maxOccurs=""unbounded"" /> </xs:sequence> </xs:complexType>"); } Site.Assert.AreEqual<int>( 1, entityExtractionResult.TaskSuggestions.Length, string.Format( "There should be one task suggestion information in the entity extraction result, actual {0}.", entityExtractionResult.TaskSuggestions.Length)); this.VerifyTaskSuggestionType(entityExtractionResult.TaskSuggestions[0]); } if (entityExtractionResult.EmailAddresses != null) { if (Common.IsRequirementEnabled(1756, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1756"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1756 // The EmailAddresses element is ArrayOfEmailAddressEntitiesType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1756, @"[In Appendix C: Product Behavior] Implementation does use the ArrayOfEmailAddressEntitiesType complex type which specifies an array of email addresses. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfEmailAddressEntitiesType""> <xs:sequence> <xs:element name=""EmailAddressEntity"" type=""t:EmailAddressEntityType"" minOccurs=""0"" maxOccurs=""unbounded""/> </xs:sequence> /xs:complexType>"); } foreach (EmailAddressEntityType emailAddress in entityExtractionResult.EmailAddresses) { if (Common.IsRequirementEnabled(1760, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1760"); // The emailAddress element is EmailAddressEntityType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirementIfIsNotNull( emailAddress, 1760, @"[In Appendix C: Product Behavior] Implementation does use this type [EmailAddressEntityType Complex Type] which extends the EntityType complex type, as specified in section 2.2.4.38. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""EmailAddressEntityType""> <xs:complexContent> <xs:extension base=""t:EntityType""> <xs:sequence> <xs:element name=""EmailAddress"" type=""xs:string"" minOccurs=""0""/> </xs:sequence> </xs:extension> </xs:complexContent>"); this.VerifyEntityType(emailAddress); } } } if (entityExtractionResult.Contacts != null) { if (Common.IsRequirementEnabled(1278, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1278"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1278 // The Contacts element is ArrayOfContactsType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1278, @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfContactsType complex type which specifies an array of contacts. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfContactsType""> <xs:sequence> <xs:element name=""Contact"" type=""t:ContactType"" minOccurs=""0"" maxOccurs=""unbounded""/> </xs:sequence> </xs:complexType>"); } Site.Assert.AreEqual<int>( 1, entityExtractionResult.Contacts.Length, string.Format( "There should be one contact information in the entity extraction result, actual {0}.", entityExtractionResult.Contacts.Length)); this.VerifyContactType(entityExtractionResult.Contacts[0]); } if (entityExtractionResult.Urls != null) { if (Common.IsRequirementEnabled(1772, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1772"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1772 // The Urls element is ArrayOfUrlEntitiesType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1772, @"[In Appendix C: Product Behavior] Implementation does use the ArrayOfUrlEntitiesType complex type which specifies an array of URL entities. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfUrlEntitiesType""> <xs:sequence> <xs:element name=""UrlEntity"" type=""t:UrlEntityType"" minOccurs=""0"" maxOccurs=""unbounded""/> </xs:sequence> </xs:complexType>"); } Site.Assert.AreEqual<int>( 1, entityExtractionResult.Urls.Length, string.Format( "There should be one url information in the entity extraction result, actual {0}.", entityExtractionResult.Urls.Length)); if (Common.IsRequirementEnabled(1776, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1776"); // The url element is UrlEntityType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirementIfIsNotNull( entityExtractionResult.Urls[0], 1776, @"[In Appendix C: Product Behavior] Implementation does use this type [UrlEntityType Complex Type] which extends the EntityType complex type, as specified in section 2.2.4.38. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""UrlEntityType""> <xs:complexContent> <xs:extension base=""t:EntityType""> <xs:sequence> <xs:element name=""Url"" type=""xs:string"" minOccurs=""0""/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>"); this.VerifyEntityType(entityExtractionResult.Urls[0]); } } if (entityExtractionResult.PhoneNumbers != null) { if (Common.IsRequirementEnabled(1763, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1763"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1763 // The PhoneNumbers element is ArrayOfPhoneEntitiesType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1763, @"[In Appendix C: Product Behavior] Implementation does use the ArrayOfPhoneEntitiesType complex type which specifies an array of phone entities. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfPhoneEntitiesType""> <xs:sequence> <xs:element name=""Phone"" type=""t:PhoneEntityType"" minOccurs=""0"" maxOccurs=""unbounded""/> </xs:sequence> </xs:complexType>"); } Site.Assert.AreEqual<int>( 1, entityExtractionResult.PhoneNumbers.Length, string.Format( "There should be one phone number information in the entity extraction result, actual {0}.", entityExtractionResult.PhoneNumbers.Length)); if (Common.IsRequirementEnabled(1767, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1767"); // The phoneNumber element is PhoneEntityType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirementIfIsNotNull( entityExtractionResult.PhoneNumbers[0], 1767, @"[In Appendix C: Product Behavior] Implementation does use this type [PhoneEntityType Complex Type] which extends the EntityType complex type, as specified in section 2.2.4.38. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""PhoneEntityType""> <xs:complexContent> <xs:extension base=""t:EntityType""> <xs:sequence> <xs:element name=""OriginalPhoneString type=""xs:string"" minOccurs=""0""/> <xs:element name=""PhoneString"" type=""xs:string"" minOccurs=""0""/> <xs:element name=""Type"" type=""xs:string"" minOccurs=""0""/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType>"); this.VerifyEntityType(entityExtractionResult.PhoneNumbers[0]); } } }