/// <summary> /// Default constructor. /// </summary> /// <param name="card">Owner card.</param> /// <param name="name">Item name.</param> /// <param name="parameters">Item parameters.</param> /// <param name="value">Item encoded value value.</param> internal Item(vCard card,string name,string parameters,string value) { m_pCard = card; m_Name = name; m_Parameters = parameters; m_Value = value; }
/// <summary> /// Default constructor. /// </summary> /// <param name="owner">Owner vCard.</param> internal PhoneNumberCollection(vCard owner) { m_pOwner = owner; m_pCollection = new List<PhoneNumber>(); foreach(Item item in owner.Items.Get("TEL")){ m_pCollection.Add(PhoneNumber.Parse(item)); } }
/// <summary> /// Default constructor. /// </summary> /// <param name="owner">Owner vCard.</param> internal DeliveryAddressCollection(vCard owner) { m_pOwner = owner; m_pCollection = new List<DeliveryAddress>(); foreach(Item item in owner.Items.Get("ADR")){ m_pCollection.Add(DeliveryAddress.Parse(item)); } }
/// <summary> /// Default constructor. /// </summary> /// <param name="owner">Owner vCard.</param> internal EmailAddressCollection(vCard owner) { m_pOwner = owner; m_pCollection = new List<EmailAddress>(); foreach(Item item in owner.Items.Get("EMAIL")){ m_pCollection.Add(EmailAddress.Parse(item)); } }
/// <summary> /// Default constructor. /// </summary> /// <param name="card">Owner card.</param> internal ItemCollection(vCard card) { m_pCard = card; m_pItems = new List<Item>(); }
/// <summary> /// Parses multiple vCards from the specified file (Apple Address Book and Gmail exports) /// </summary> /// <param name="file">vCard file with path.</param> public static List<vCard> ParseMultiple(string file) { List<vCard> vCards = new List<vCard>(); List<string> fileStrings = new List<string>(); string line = ""; bool hasBeginTag = false; using (FileStream fs = File.OpenRead(file)) { TextReader r = new StreamReader(fs, System.Text.Encoding.Default); while (line != null) { line = r.ReadLine(); if (line != null && line.ToUpper() == "BEGIN:VCARD") { hasBeginTag = true; } if (hasBeginTag) { fileStrings.Add(line); if (line != null && line.ToUpper() == "END:VCARD") { // on END line process the Vcard, reinitialize, and will repeat the same thing for any others. vCard singleVcard = new vCard(); singleVcard.ParseStrings(fileStrings); vCards.Add(singleVcard); fileStrings.Clear(); hasBeginTag = false; } } } } return vCards; }