Exemplo n.º 1
0
        /// <summary>
        /// Validates the data in the DocumentObject and returns a class containing the findings
        /// </summary>
        /// <returns></returns>
        public DocumentObjectValidationFindings Validate()
        {
            var docObVal = new DocumentObjectValidationFindings();

            foreach (var fact in TotalFacts)
            {
                var findings = fact.Validate();
                if (!findings.allGreen)
                {
                    docObVal.nonGreenFactsFindings.Add(findings);
                }
            }
            if (docObVal.nonGreenFactsFindings.Count == 0)
            {
                docObVal.allGreen = true;
                return(docObVal);
            }
            return(docObVal);
        }
        /// <summary>
        /// Constructs and displays an error message based on the fields of the
        /// provided parameter.
        /// </summary>
        /// <param name="findings"></param>
        public void DisplayFindings(DocumentObjectValidationFindings findings)
        {
            var factMessages           = new List <string>();
            var duplicatesMessage      = "";
            var mismatchMessage        = "";
            var dictKeysHasMoreMessage = "";
            var linkListHasMoreMessage = "";

            foreach (var finding in findings.nonGreenFactsFindings)
            {
                if (finding.areThereDuplicates)
                {
                    duplicatesMessage = finding.fact.ResolveDuplicatesMessage(finding);
                }
                if (finding.mismatch)
                {
                    mismatchMessage = finding.fact.ResolveMismatchMessage(finding);
                }
                if (finding.dictKeysHasMore)
                {
                    dictKeysHasMoreMessage = finding.fact.ResolveDictKeysHasMoreMessage(finding);
                }
                if (finding.linkListHasMore)
                {
                    linkListHasMoreMessage = finding.fact.ResolveLinkListHasMoreMessage(finding);
                }
                var factMessage = duplicatesMessage + mismatchMessage + dictKeysHasMoreMessage + linkListHasMoreMessage;
                factMessages.Add(factMessage);
            }

            var sb = new StringBuilder();

            for (int i = 0; i < factMessages.Count; i++)
            {
                sb.AppendLine(factMessages[i].ToString());
            }
            MessageBox.Show($"{sb}");
        }