/// <summary> /// Verify the ContactType structure /// </summary> /// <param name="contact">An ContactType instance.</param> private void VerifyContactType(ContactType contact) { if (Common.IsRequirementEnabled(1279, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1279"); // The contact element is ContactType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirementIfIsNotNull( contact, 1279, @"[In Appendix C: Product Behavior] Implementation does support the ContactType complex type which specifies the type of a contact. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ContactType""> <xs:sequence> <xs:element name=""PersonName"" type=""xs:string"" minOccurs=""0"" /> <xs:element name=""BusinessName"" type=""xs:string"" minOccurs=""0"" /> <xs:element name=""PhoneNumbers"" type=""t:ArrayOfPhonesType"" minOccurs=""0"" maxOccurs=""1"" /> <xs:element name=""Urls"" type=""t:ArrayOfUrlsType"" minOccurs=""0"" maxOccurs=""1"" /> <xs:element name=""EmailAddresses"" type=""t:ArrayOfExtractedEmailAddresses"" minOccurs=""0"" maxOccurs=""1"" /> <xs:element name=""Addresses"" type=""t:ArrayOfAddressesType"" minOccurs=""0"" maxOccurs=""1"" /> <xs:element name=""ContactString"" type=""xs:string"" minOccurs=""0"" /> </xs:sequence> </xs:complexType>"); } if (contact.PhoneNumbers != null) { if (Common.IsRequirementEnabled(1281, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1281"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1281 // The PhoneNumbers element is ArrayOfPhonesType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1281, @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfPhonesType complex type which specifies an array of phone numbers. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfPhonesType""> <xs:sequence> <xs:element name=""Phone"" type=""t:PhoneType"" minOccurs=""0"" maxOccurs=""unbounded"" /> </xs:sequence> </xs:complexType>"); } foreach (PhoneType phoneNumber in contact.PhoneNumbers) { if (Common.IsRequirementEnabled(1282, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1282"); // The phoneNumber element is PhoneEntityType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirementIfIsNotNull( phoneNumber, 1282, @"[In Appendix C: Product Behavior] Implementation does support the PhoneType complex type which specifies a phone number and its type. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""PhoneType""> <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:complexType>"); } } } if (contact.Urls != null) { if (Common.IsRequirementEnabled(1280, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1280"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1280 // The Urls element is ArrayOfUrlsType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1280, @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfUrlsType complex type which specifies an array of URLs. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfUrlsType""> <xs:sequence> <xs:element name=""Url"" type=""xs:string"" minOccurs=""0"" maxOccurs=""unbounded""/> </xs:sequence> </xs:complexType>"); } } if (contact.EmailAddresses != null) { if (Common.IsRequirementEnabled(1287, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1287"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1287 // The EmailAddresses element is ArrayOfExtractedEmailAddresses type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1287, @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfExtractedEmailAddresses complex type which specifies an array of email addresses. (Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfExtractedEmailAddresses""> <xs:sequence> <xs:element name=""EmailAddress"" type=""xs:string"" minOccurs=""0"" maxOccurs=""unbounded""/> </xs:sequence> </xs:complexType>"); } } if (contact.Addresses != null) { if (Common.IsRequirementEnabled(1272, this.Site)) { // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1272"); // Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1272 // The Addresses element is ArrayOfAddressesType type, if schema is validated and the element is not null // This requirement can be verified. Site.CaptureRequirement( 1272, @"[In Appendix C: Product Behavior] Implementation does support the ArrayOfAddressesType complex type which specifies an array of addresses.(Exchange 2013 and above follow this behavior.) <xs:complexType name=""ArrayOfAddressesType""> <xs:sequence> <xs:element name=""Address"" type=""xs:string"" minOccurs=""0"" maxOccurs=""unbounded""/> </xs:sequence> </xs:complexType>"); } } }