/// <summary>
        /// Validates the policy data items.
        /// </summary>
        /// <param name="header">The header.</param>
        /// <returns>Process Results Collection</returns>
        private ProcessResultsCollection ValidatePolicyDataItems(Header header)
        {
            var processResultsCollection = new ProcessResultsCollection();
            // Get the latest version of the UW Header
            var headerVersion = (HeaderVersion)header.GetLatestVersion();
            // Validate the Generic Data Items
            this.ValidateGenericDataItems(processResultsCollection, headerVersion, this.ExtractGenericDataItems(headerVersion), headerVersion);
            
            var sectionDetails = from s in header.Sections
                                 from sd in s.SectionDetails
                                 select sd;
            // Cycle through all Section Details on the Header
            foreach (var sectionDetail in sectionDetails)
            {
                // Get the latest version
                var sectionDetailVersion = (SectionDetailVersion)sectionDetail.GetLatestVersion();
                // Validate all the generic data items are correct on this Section detail.
                this.ValidateGenericDataItems(processResultsCollection, sectionDetailVersion, this.ExtractGenericDataItems(sectionDetailVersion), headerVersion);

                // Cycle through all the coverages on this Section Detail
                foreach (var coverage in sectionDetail.Coverages)
                {
                    // Get latest version and validate the Generic data items
                    var coverageVersion = (CoverageVersion)coverage.GetLatestVersion();
                    this.ValidateGenericDataItems(processResultsCollection, coverageVersion, this.ExtractGenericDataItems(coverageVersion), headerVersion);
                }
            }

            return processResultsCollection;
        }
 /// <summary>
 /// Updates the header title, inception and expiry dates with the values from the Genius Policy header.
 /// </summary>
 /// <param name="xiapHeader">The xiap header.</param>
 /// <param name="externalHeader">The external header.</param>
 private void UpdateHeader(Header xiapHeader, IUWHeader externalHeader)
 {
     xiapHeader.ExternalReference = externalHeader.ExternalReference;
     HeaderVersion headerVersion = (HeaderVersion)xiapHeader.GetLatestVersion();
     if (headerVersion != null)
     {
         headerVersion.HeaderTitle = externalHeader.HeaderTitle;
         headerVersion.InceptionDate = externalHeader.InceptionDate;
         headerVersion.ExpiryDate = externalHeader.ExpiryDate;
     }
 }