Example #1
0
        private void OntdubbelvCardLijst()
        {
            // verwijderern van dubbele entries. We gooien de eerste weg door hem dirty te maken
            foreach (VCard vCard in vCardLijst)
            {
                vCard.Dirty = false;
            }

            for (int i = 0; i <= vCardLijst.Count - 2; i++)
            {
                for (int j = i + 1; j <= vCardLijst.Count - 1; j++)
                {
                    if (vCardLijst[i].NetteNaam.Trim() == vCardLijst[j].NetteNaam.Trim())
                    {
                        vCardLijst[i].Dirty = true;
                        vCardLijst[j].adresLijst.AddRange(vCardLijst[i].adresLijst);
                        vCardLijst[j].emailLijst.AddRange(vCardLijst[i].emailLijst);
                        vCardLijst[j].telefoonNummerLijst.AddRange(vCardLijst[i].telefoonNummerLijst);
                    }
                }
            }

            for (int i = vCardLijst.Count - 1; i >= 0; i--)
            {
                //Console.WriteLine("{0}  {1}   {2}", i, vCardLijst[i].Dirty, vCardLijst[i].NetteNaam.Trim());
                if (vCardLijst[i].Dirty)
                {
                    vCardLijst.RemoveAt(i);
                }
            }
            // nu de dubbele telnr, email en adressen verwijderen
            // ik weet niet echt een snelle methode. Ik zet nu alle records in de lijsten op Dirty = false;
            // bij een dubble zet ik dirty op true
            // tenslotte verwijder ik alle dirty's.


            foreach (VCard vCard in vCardLijst)
            {
                foreach (AddressClass adres in vCard.adresLijst)
                {
                    adres.Dirty = false;
                }
                foreach (TelephoneNumberClass telefoon in vCard.telefoonNummerLijst)
                {
                    telefoon.Dirty = false;
                }
                foreach (EmailAddressClass email in vCard.emailLijst)
                {
                    email.Dirty = false;
                }

                for (int i = 0; i <= vCard.adresLijst.Count - 2; i++)
                {
                    for (int j = i + 1; j <= vCard.adresLijst.Count - 1; j++)
                    {
                        if ((vCard.adresLijst[i].Adres.Trim() == vCard.adresLijst[j].Adres.Trim()) ||
                            (vCard.adresLijst[i].Adres.Trim() == string.Empty))
                        {
                            vCard.adresLijst[i].Dirty = true;
                        }
                    }
                }

                for (int i = 0; i <= vCard.emailLijst.Count - 2; i++)
                {
                    for (int j = i + 1; j <= vCard.emailLijst.Count - 1; j++)
                    {
                        if ((vCard.emailLijst[i].EmailAddress.Trim() == vCard.emailLijst[j].EmailAddress.Trim()) ||
                            (vCard.emailLijst[i].EmailAddress.Trim() == string.Empty))
                        {
                            vCard.emailLijst[i].Dirty = true;
                        }
                    }
                }

                for (int i = 0; i <= vCard.telefoonNummerLijst.Count - 2; i++)
                {
                    for (int j = i + 1; j <= vCard.telefoonNummerLijst.Count - 1; j++)
                    {
                        int l1 = vCard.telefoonNummerLijst[i].TelephoneNumber.Trim().Length - 7;
                        int l2 = vCard.telefoonNummerLijst[j].TelephoneNumber.Trim().Length - 7;
                        if (l1 <= 2)
                        {
                            l1 = 0;
                            vCard.telefoonNummerLijst[i].TelephoneNumber = string.Empty;
                        }
                        if (l2 <= 2)
                        {
                            l2 = 0;
                            vCard.telefoonNummerLijst[j].TelephoneNumber = string.Empty;
                        }


                        if ((vCard.telefoonNummerLijst[i].TelephoneNumber.Trim().Substring(l1) == vCard.telefoonNummerLijst[j].TelephoneNumber.Trim().Substring(l2)) ||
                            (vCard.telefoonNummerLijst[i].TelephoneNumber.Trim() == string.Empty))
                        {
                            vCard.telefoonNummerLijst[i].Dirty = true;
                        }
                    }
                }


                for (int i = vCard.adresLijst.Count - 1; i >= 0; i--)
                {
                    if (vCard.adresLijst[i].Dirty)
                    {
                        vCard.adresLijst.RemoveAt(i);
                    }
                }
                for (int i = vCard.emailLijst.Count - 1; i >= 0; i--)
                {
                    if (vCard.emailLijst[i].Dirty)
                    {
                        vCard.emailLijst.RemoveAt(i);
                    }
                }
                for (int i = vCard.telefoonNummerLijst.Count - 1; i >= 0; i--)
                {
                    if (vCard.telefoonNummerLijst[i].Dirty)
                    {
                        vCard.telefoonNummerLijst.RemoveAt(i);
                    }
                }
            }

            vCardLijst.Sort(new vCardComparer());
        }