Beispiel #1
0
    public static void loadReferenceCvn()
    {
        string FileName = Path.Combine(Application.StartupPath, "XML", "Reference-CVN.xml");

        if (!File.Exists(FileName))
        {
            return;
        }
        referenceCvnList = new List <referenceCvn>();
        System.Xml.Serialization.XmlSerializer reader = new System.Xml.Serialization.XmlSerializer(typeof(List <referenceCvn>));
        System.IO.StreamReader file = new System.IO.StreamReader(FileName);
        referenceCvnList = (List <referenceCvn>)reader.Deserialize(file);
        file.Close();
        foreach (referenceCvn refCvn in referenceCvnList)
        {
            for (int i = 0; i < StockCVN.Count; i++)
            {
                if (StockCVN[i].PN == refCvn.PN)
                {
                    CVN C1 = StockCVN[i];
                    C1.ReferenceCvn = refCvn.CVN;
                    StockCVN.RemoveAt(i);
                    StockCVN.Insert(i, C1);
                }
            }
        }
    }
Beispiel #2
0
        private void btnImportCSV_Click(object sender, EventArgs e)
        {
            string FileName = SelectFile("CSV files (*.csv)|*.csv|All files (*.*)|*.*");

            if (FileName.Length == 0)
            {
                return;
            }
            StreamReader sr = new StreamReader(FileName);
            string       line;

            while ((line = sr.ReadLine()) != null)
            {
                string[] lineparts = line.Split(';');
                if (lineparts.Length == 2)
                {
                    CVN C1 = new CVN();
                    C1.PN  = lineparts[0];
                    C1.cvn = lineparts[1];
                    bool isinlist = false;
                    for (int i = 0; i < StockCVN.Count; i++)
                    {
                        if (StockCVN[i].PN == C1.PN)
                        {
                            isinlist = true;
                            if (StockCVN[i].cvn != C1.cvn)
                            {
                                //Update, is not correct CVN
                                Logger("Updating PN: " + C1.PN + " Old: " + StockCVN[i].cvn + ", new: " + C1.cvn);
                                C1.SegmentNr = StockCVN[i].SegmentNr;
                                C1.Ver       = StockCVN[i].Ver;
                                C1.XmlFile   = StockCVN[i].XmlFile;
                                StockCVN.RemoveAt(i);
                                StockCVN.Insert(i, C1);
                            }
                        }
                    }
                    if (!isinlist)
                    {
                        StockCVN.Add(C1);
                    }
                }
            }
            sr.Close();
            LoadStockCVN();
        }
Beispiel #3
0
    public static string CheckStockCVN(string PN, string Ver, string SegNr, string cvn, bool AddToList)
    {
        string retVal = "[n/a]";

        for (int c = 0; c < StockCVN.Count; c++)
        {
            //if (StockCVN[c].XmlFile == Path.GetFileName(XMLFile) && StockCVN[c].PN == PN && StockCVN[c].Ver == Ver && StockCVN[c].SegmentNr == SegNr && StockCVN[c].cvn == cvn)
            if (StockCVN[c].PN == PN && StockCVN[c].Ver == Ver && StockCVN[c].SegmentNr == SegNr)
            {
                if (Path.GetFileName(XMLFile) != StockCVN[c].XmlFile && StockCVN[c].AlternateXML == null)
                {
                    CVN c1 = StockCVN[c];
                    c1.AlternateXML = Path.GetFileName(XMLFile);
                    StockCVN.RemoveAt(c);
                    StockCVN.Insert(c, c1);
                }
                if (StockCVN[c].cvn == cvn)
                {
                    retVal = "[stock]";
                    break;
                }
                else
                {
                    retVal = "[modded]";
                    break;
                    //return "[modded]";
                }
            }
        }


        if (retVal == "[n/a]")
        {
            //Check if it's in referencelist
            bool cvnMismatch = false;
            uint refC        = 0;
            uint cvnInt      = 0;
            if (!HexToUint(cvn, out cvnInt))
            {
                throw new Exception("Can't convert from HEX: " + cvn);
            }
            string refString = "";
            for (int r = 0; r < referenceCvnList.Count; r++)
            {
                if (PN == referenceCvnList[r].PN)
                {
                    refString   = referenceCvnList[r].CVN;
                    cvnMismatch = true;    //Found from referencelist, match not found YET
                    if (!HexToUint(referenceCvnList[r].CVN, out refC))
                    {
                        throw new Exception("Can't convert from HEX: " + referenceCvnList[r].CVN);
                    }
                    if (refC == cvnInt)
                    {
                        Debug.WriteLine("PN: " + PN + " CVN found from Referencelist: " + referenceCvnList[r].CVN);
                        cvnMismatch = false; //Found from referencelist, no mismatch
                    }
                    ushort refShort;
                    if (!HexToUshort(referenceCvnList[r].CVN, out refShort))
                    {
                        throw new Exception("Can't convert from HEX: " + referenceCvnList[r].CVN);
                    }
                    if (SwapBytes(refShort) == cvnInt)
                    {
                        Debug.WriteLine("PN: " + PN + " byteswapped CVN found from Referencelist: " + referenceCvnList[r].CVN);
                        cvnMismatch = false; //Found from referencelist, no mismatch
                    }
                    break;
                }
            }

            if (cvnMismatch) //Found from referencelist, have mismatch
            {
                bool isInBadCvnList = false;
                AddToList = false;  //Don't add to CVN list if add to mismatch CVN
                if (BadCvnList == null)
                {
                    BadCvnList = new List <CVN>();
                }
                for (int i = 0; i < BadCvnList.Count; i++)
                {
                    if (BadCvnList[i].PN == PN && BadCvnList[i].cvn == cvn)
                    {
                        isInBadCvnList = true;
                        Debug.WriteLine("PN: " + PN + ", CVN: " + cvn + " is already in badCvnList");
                        break;
                    }
                }
                if (!isInBadCvnList)
                {
                    Debug.WriteLine("Adding PN: " + PN + ", CVN: " + cvn + " to badCvnList");
                    CVN C1 = new CVN();
                    C1.cvn          = cvn;
                    C1.PN           = PN;
                    C1.SegmentNr    = SegNr;
                    C1.Ver          = Ver;
                    C1.XmlFile      = Path.GetFileName(XMLFile);
                    C1.ReferenceCvn = refString.TrimStart('0');
                    BadCvnList.Add(C1);
                }
            }
        }

        if (AddToList && retVal != "[stock]")
        {
            bool IsinCVNlist = false;
            if (ListCVN == null)
            {
                ListCVN = new List <CVN>();
            }
            for (int c = 0; c < ListCVN.Count; c++)
            {
                //if (ListCVN[c].XmlFile == Path.GetFileName(XMLFile) && ListCVN[c].PN == PN && ListCVN[c].Ver == Ver && ListCVN[c].SegmentNr == SegNr && ListCVN[c].cvn == cvn)
                if (ListCVN[c].PN == PN && ListCVN[c].Ver == Ver && ListCVN[c].SegmentNr == SegNr && ListCVN[c].cvn == cvn)
                {
                    Debug.WriteLine("Already in CVN list: " + cvn);
                    IsinCVNlist = true;
                    break;
                }
            }
            if (!IsinCVNlist)
            {
                CVN C1 = new CVN();
                C1.cvn       = cvn;
                C1.PN        = PN;
                C1.SegmentNr = SegNr;
                C1.Ver       = Ver;
                C1.XmlFile   = Path.GetFileName(XMLFile);
                for (int r = 0; r < referenceCvnList.Count; r++)
                {
                    if (referenceCvnList[r].PN == C1.PN)
                    {
                        C1.ReferenceCvn = referenceCvnList[r].CVN.TrimStart('0');
                        break;
                    }
                }
                ListCVN.Add(C1);
            }
        }

        return(retVal);
    }