示例#1
0
        public bool Check()
        {
            var logger = new TextLogger(LogSeverity.Warning);

            logger.PutLine("*** Control d’intégrité ***");
            logger.PutLine($"Table: {AppContext.TableManager.Incoterms.Name}");
            logger.PutLine("La contrainte d’intégrité n° 9 est violée par les éléments suivants :");


            bool anyErr = false;

            foreach (string name in m_ndxerNames.Attributes)
            {
                IEnumerable <IDatum> icts = m_ndxerNames.Get(name);

                if (icts.Count() > 1)
                {
                    logger.PutLine($"Noms identiques ({name}):");

                    foreach (Incoterm c in icts)
                    {
                        logger.PutLine(c.ToString());
                    }

                    logger.PutLine();
                    anyErr = true;
                }
            }


            if (anyErr)
            {
                logger.Flush();
            }

            return(!anyErr);
        }
示例#2
0
        public bool Check()
        {
            //contrainte 2
            var logger = new TextLogger(LogSeverity.Warning);

            logger.PutLine("*** Control d’intégrité ***");
            logger.PutLine($"Table: {AppContext.TableManager.Countries.Name}");
            logger.PutLine("La contrainte d’intégrité n° 2 est violée par les éléments suivants :");

            bool anyErr = false;

            //nom unique
            foreach (string name in m_ndxerName.Attributes)
            {
                IEnumerable <IDatum> countries = m_ndxerName.Get(name);

                if (countries.Count() > 1)
                {
                    logger.PutLine($"Noms identiques ({name}):");

                    foreach (Country c in countries)
                    {
                        logger.PutLine(c.ToString());
                    }

                    logger.PutLine();
                    anyErr = true;
                }
            }


            //code pays unique
            foreach (ushort code in m_ndxerInternalCode.Attributes)
            {
                IEnumerable <IDatum> countries = m_ndxerInternalCode.Get(code);

                if (countries.Count() > 1)
                {
                    logger.PutLine($"Codes pays identiques ({code}):");

                    foreach (Country c in countries)
                    {
                        logger.PutLine(c.ToString());
                    }

                    logger.PutLine();
                    anyErr = true;
                }
            }


            //iso code est nul ou unique
            foreach (string isoCode in  m_ndxerIsoCode.Attributes.Where(s => !string.IsNullOrWhiteSpace(s)))
            {
                IEnumerable <IDatum> countries = m_ndxerIsoCode.Get(isoCode);

                if (countries.Count() > 1)
                {
                    logger.PutLine($"Iso Codes identiques ({isoCode}):");

                    foreach (Country c in countries)
                    {
                        logger.PutLine(c.ToString());
                    }

                    logger.PutLine();
                    anyErr = true;
                }
            }


            if (anyErr)
            {
                logger.Flush();
            }

            return(!anyErr);
        }