Beispiel #1
0
        public void AddContact(Contact contact)
        {
            if (contact == null)
            {
                throw new ArgumentNullException("Contact is empty!");
            }

            this.contactsByName.Add(contact.Name, contact);
            Tuple<string, string> nameAndTown = new Tuple<string, string>(contact.Name, contact.Town);
            this.contactsByNameAndTown.Add(nameAndTown, contact);

            Debug.Assert(this.contactsByName.KeyValuePairs.Count == this.contactsByNameAndTown.KeyValuePairs.Count);
        }
Beispiel #2
0
        public bool RemoveContact(Contact contact)
        {
            if (!contactsByName.Contains(contact.Name, contact))
            {
                throw new ArgumentException("Phone book does not contain such contact.");
            }

            Contact removedContact = contact;
            bool byName = this.contactsByName.Remove(contact.Name, contact);

            Tuple<string, string> nameAndTown = new Tuple<string, string>(contact.Name, contact.Town);
            bool byNameAndTown = this.contactsByNameAndTown.Remove(nameAndTown, contact);

            Debug.Assert(byName == byNameAndTown);

            return byName && byNameAndTown;
        }
Beispiel #3
0
        public void Parse(string path)
        {
            StreamReader reader = new StreamReader(path);

            using (reader)
            {
                string line = reader.ReadLine();

                while (line != null)
                {
                    string[] parsedData = line.Split('|');

                    string name = parsedData[0].Trim();
                    string town = parsedData[1].Trim();
                    string phone = parsedData[2].Trim();

                    Contact toBeAdded = new Contact(name, town, phone);
                    this.AddContact(toBeAdded);

                    line = reader.ReadLine();
                }
            }
        }