public XDocument ConvertCheckRunLaunchToCheckRunArtifact(XDocument crl)
        {
            DataValidation.Instance.ValidateCheckRunLaunch(crl);
            XDocument craXDocumentResult = new XDocument();

            // Transform CRL to CRA
            using (XmlWriter xmlWriter = craXDocumentResult.CreateWriter())
            {
                CheckRunTransforms   checkRunTransforms = new CheckRunTransforms();
                XslCompiledTransform xslTransform       = checkRunTransforms.CrlToCraTransform;
                xslTransform.Transform(crl.CreateReader(), xmlWriter);
            }

            // Remove all the extra whitespace text nodes. This works around what seems to be a bug in the XSL implementation
            var          nodeIterator      = from node in craXDocumentResult.Root.DescendantNodes() where (node.NodeType == XmlNodeType.Text) select node;
            List <XNode> textNodesToRemove = new List <XNode>();

            foreach (XNode textNode in nodeIterator)
            {
                textNodesToRemove.Add(textNode);
            }

            foreach (XNode textNode in textNodesToRemove)
            {
                textNode.Remove();
            }

            return(craXDocumentResult);
        }
Пример #2
0
        /// <summary>
        /// Accepts and validates CheckRunLaunch XDocument
        /// </summary>
        /// <param name="checkRunLaunchXDocument"></param>
        /// <returns></returns>
        public void InitializeCheckRunFromCheckRunLaunch(XDocument checkRunLaunchXDocument)
        {
            DataValidation.Instance.ValidateCheckRunLaunch(checkRunLaunchXDocument);
            CheckRunTransforms checkRunTransforms = new CheckRunTransforms();
            XDocument          checkRunArtifact   = checkRunTransforms.ConvertCheckRunLaunchToCheckRunArtifact(checkRunLaunchXDocument);

            this.m_CheckRunArtifact = new CheckRunArtifact(checkRunArtifact);
        }