Пример #1
0
 private void DoValidateXML(object obj)
 {
     try
     {
         if (!File.Exists(XSD_PATH))
         {
             MessageBox.Show("XSD File Not Found !");
             return;
         }
         if (File.Exists(XmlPath))
         {
             try
             {
                 VerifyXML(XmlPath);
             }
             catch (Exception ex)
             {
                 AppErrorBox.ShowErrorMessage("Error While Verifying XML . .", ex.ToString());
             }
             try
             {
                 using (var reader = new XmlTextReader(XmlPath))
                 {
                     XmlSerializer serializer = new XmlSerializer(typeof(xsd.RXNFILE));
                     xsd.RXNFILE   rxnFile    = (xsd.RXNFILE)serializer.Deserialize(reader);
                     CollectSummary(rxnFile);
                 }
             }
             catch (Exception ex)
             {
                 AppErrorBox.ShowErrorMessage("Error While Collecting Information From XML . .", ex.ToString());
             }
         }
         else
         {
             MessageBox.Show("XML File Path Is Not Valid . .");
         }
     }
     catch (Exception ex)
     {
         Log.This(ex);
     }
 }
Пример #2
0
        private void CollectSummary(xsd.RXNFILE rxnFile)
        {
            try
            {
                int rxnsCount = 0;
                S8000Chemicals = 0;
                List <ValidateRSDVM> rsdData = new List <ValidateRSDVM>();

                CommentsUnicodeErrors = new ObservableCollection <UnicodeErrorVM>();
                RSNUnicodeErrors      = new ObservableCollection <UnicodeErrorVM>();
                S8000UnicodeErrors    = new ObservableCollection <UnicodeErrorVM>();

                if (rxnFile.DOCUMENT != null)
                {
                    TotalTans = rxnFile.DOCUMENT.Count();

                    foreach (var tan in rxnFile.DOCUMENT)
                    {
                        if (tan.RXNGRP != null)
                        {
                            if (tan.RXNGRP.RXN != null)
                            {
                                rxnsCount += tan.RXNGRP.RXN.Count();

                                foreach (var rxn in tan.RXNGRP.RXN)
                                {
                                    #region 8000 Chemical Name Unicode Check
                                    if (rxn.SUBDESC != null && rxn.SUBDESC.SUBDEFN != null)
                                    {
                                        S8000Chemicals += rxn.SUBDESC.SUBDEFN.Length;
                                        foreach (var s8000Definition in rxn.SUBDESC.SUBDEFN)
                                        {
                                            if (CharUtils.NotAValidUniCodeString(s8000Definition.SUBNAME))
                                            {
                                                S8000UnicodeErrors.Add(new UnicodeErrorVM
                                                {
                                                    TanNumber     = tan.TAN,
                                                    Num           = s8000Definition.NRNNUM,
                                                    Seq           = rxn.RXNID.RXNSEQ,
                                                    SubstanceName = s8000Definition.SUBNAME
                                                });
                                            }
                                        }
                                    }
                                    #endregion

                                    if (rxn.RXNPROCESS.RSN != null)
                                    {
                                        foreach (var rsn in rxn.RXNPROCESS.RSN)
                                        {
                                            if (CharUtils.NotAValidUniCodeString(rsn.Value))
                                            {
                                                RSNUnicodeErrors.Add(new UnicodeErrorVM
                                                {
                                                    TanNumber = tan.TAN,
                                                    RXN       = rxn.NO,
                                                    Seq       = rxn.RXNID.RXNSEQ,
                                                    Comments  = rsn.Value
                                                });
                                            }
                                        }
                                    }

                                    #region RSD Data
                                    rsdData.Add(new ValidateRSDVM
                                    {
                                        ProductNo   = rxn.RXNID.RXNNUM,
                                        RSD         = rxn.RSD,
                                        RsdLength   = rxn.RSD.Length,
                                        RxnNo       = rxn.NO,
                                        Semicolumns = rxn.RSD.Split(';').Length - 1,
                                        Sequence    = rxn.RXNID.RXNSEQ,
                                        Stages      = rxn.RXNPROCESS.STAGE.Count(),
                                        TanNumber   = tan.TAN
                                    });
                                    #endregion
                                }
                            }
                        }

                        if (!String.IsNullOrEmpty(tan.COMMENTS) && CharUtils.NotAValidUniCodeString(tan.COMMENTS))
                        {
                            CommentsUnicodeErrors.Add(new UnicodeErrorVM {
                                TanNumber = tan.TAN, Comments = tan.COMMENTS
                            });
                        }
                    }
                }
                var sortedRSDs = rsdData.OrderByDescending(r => r.RsdLength);
                RSDResult    = new ObservableCollection <ValidateRSDVM>(sortedRSDs);
                MaxRSDLength = sortedRSDs.FirstOrDefault()?.RsdLength;
                TotalRXNs    = rxnsCount;
            }
            catch (Exception ex)
            {
                Log.This(ex);
            }
        }