예제 #1
0
        public void GroupAdd()
        {
            Group group = new Group();

            string name1 = "maichao";
            string company1 = "ynu";
            string position1 = "student";

            Person person1 = new Person { Name = name1, Company = company1, Position = position1 };

            group.AddPerson(person1);

            Assert.AreEqual(1, group.Amount);

            string name2 = "mai";
            string company2 = "ynu";
            string position2 = "graduate";

            Person person2 = new Person { Name = name2, Company = company2, Position = position2 };

            group.AddPerson(person2);

            Assert.AreEqual(2, group.Amount);

            Assert.AreNotEqual(group.Persons[0], group.Persons[1]);
        }
예제 #2
0
        public void DeleteGroup(Group group)
        {
            Group groupDefault = this.SearchGroup("Default")[0];

            // move its contacts to default group
            foreach (Person person in group.Persons)
            {
                groupDefault.AddPerson(person);
            }

            // delete it
            groups.Remove(this.SearchGroupById(group.Id));
        }
예제 #3
0
        public List <Group> SearchPerson(string condition)
        {
            List <Group> resGroup = new List <Group>();

            foreach (var group in groups)
            {
                Group g = new Group()
                {
                    Name = group.Name
                };
                var persons = group.Persons;

                foreach (var person in persons)
                {
                    Type t = typeof(Person);

                    var properties = t.GetProperties();

                    foreach (var property in properties)
                    {
                        object value = property.GetValue(person);

                        if (value != null && value.ToString() == condition)
                        {
                            if (!resGroup.Contains(g))
                            {
                                resGroup.Add(g);
                            }

                            if (!g.Persons.Contains(person))
                            {
                                g.AddPerson(person);
                            }
                        }
                    }
                }
            }

            return(resGroup);
        }
예제 #4
0
        public void GroupSearchPersonById()
        {
            Group group = new Group();

            string name1 = "maichao";
            string company1 = "ynu";
            string position1 = "student";

            Person person1 = new Person { Name = name1, Company = company1, Position = position1 };

            group.AddPerson(person1);

            string name2 = "mai";
            string company2 = "ynu";
            string position2 = "graduate";

            Person person2 = new Person { Name = name2, Company = company2, Position = position2 };

            group.AddPerson(person2);

            Person person = group.SearchPersonById(person1.Id);

            Assert.IsNotNull(person);
            Assert.AreEqual(person1.Id, person.Id);
            Assert.AreEqual(name1, person.Name);
            Assert.AreEqual(company1, person.Company);
            Assert.AreEqual(position1, person.Position);
        }
예제 #5
0
        public void GroupSearchPerson()
        {
            Group group = new Group();

            string name1 = "maichao";
            string company1 = "ynu";
            string position1 = "student";

            Person person1 = new Person { Name = name1, Company = company1, Position = position1 };

            group.AddPerson(person1);

            string name2 = "mai";
            string company2 = "ynu";
            string position2 = "graduate";

            Person person2 = new Person { Name = name2, Company = company2, Position = position2 };

            group.AddPerson(person2);

            string name3 = "chao";
            string company3 = "ynu";
            string position3 = "ynu";

            Person person3 = new Person { Name = name3, Company = company3, Position = position3 };

            group.AddPerson(person3);

            var ans1 = group.SearchPerson("mai");

            Assert.IsNotNull(ans1);
            Assert.AreEqual(1, ans1.Count);

            var ans2 = group.SearchPerson("ynu");

            Assert.IsNotNull(ans2);
            Assert.AreEqual(3, ans2.Count);
        }
예제 #6
0
        public void GroupGetPersons()
        {
            Group group = new Group();

            string name1 = "maichao";
            string company1 = "ynu";
            string position1 = "student";

            Person person1 = new Person { Name = name1, Company = company1, Position = position1 };

            group.AddPerson(person1);

            string name2 = "mai";
            string company2 = "ynu";
            string position2 = "graduate";

            Person person2 = new Person { Name = name2, Company = company2, Position = position2 };

            group.AddPerson(person2);

            List<Person> persons = group.Persons;

            Assert.IsNotNull(persons);
            Assert.AreEqual(2, group.Amount);
        }
예제 #7
0
        public void SaveData()
        {
            //Contacts1 contacts1 = new Contacts1() { Name = "waef" };

            //FileStream fileStream = new FileStream("data.dat", FileMode.Create, FileAccess.Write);
            //BinaryFormatter binaryFormatter = new BinaryFormatter();
            //binaryFormatter.Serialize(fileStream, contacts1);

            Contacts contacts = new Contacts();

            Group group1 = new Group();

            string name1 = "maichao";
            string company1 = "ynu";
            string position1 = "student";

            Person person1 = new Person { Name = name1, Company = company1, Position = position1 };

            group1.AddPerson(person1);

            Assert.AreEqual(1, group1.Amount);

            string name2 = "mai";
            string company2 = "ynu";
            string position2 = "graduate";

            Person person2 = new Person { Name = name2, Company = company2, Position = position2 };

            group1.AddPerson(person2);

            Group group2 = new Group();

            string name3 = "chao";
            string company3 = "ynu";
            string position3 = "graduate";

            Person person3 = new Person { Name = name3, Company = company3, Position = position3 };

            group2.AddPerson(person3);

            Group group3 = new Group();

            string name4 = "maichao";
            string company4 = "ynu";
            string position4 = "student";

            Person person4 = new Person { Name = name4, Company = company4, Position = position4 };

            group3.AddPerson(person4);

            Assert.AreEqual(1, group3.Amount);

            string name5 = "mai";
            string company5 = "ynu";
            string position5 = "graduate";

            Person person5 = new Person { Name = name5, Company = company5, Position = position5 };

            group3.AddPerson(person5);

            string name = "maimai";
            string company = "ynu";
            string position = "graduate";

            Person person = new Person { Name = name, Company = company, Position = position };

            group1.AddPerson(person);
            group2.AddPerson(person);
            group3.AddPerson(person);

            contacts.AddGroup(group1);
            contacts.AddGroup(group2);
            contacts.AddGroup(group3);

            FileStream fileStream = new FileStream("data.dat", FileMode.Create, FileAccess.Write);
            BinaryFormatter binaryFormatter = new BinaryFormatter();
            binaryFormatter.Serialize(fileStream, person1);
            //BinaryDataAccess bda = new BinaryDataAccess();
            //bda.SaveData(contacts, "data.dat");
        }
예제 #8
0
        public void ContactsAdd()
        {
            Contacts contacts = new Contacts();

            Group group1 = new Group();

            string name1 = "maichao";
            string company1 = "ynu";
            string position1 = "student";

            Person person1 = new Person { Name = name1, Company = company1, Position = position1 };

            group1.AddPerson(person1);

            Assert.AreEqual(1, group1.Amount);

            string name2 = "mai";
            string company2 = "ynu";
            string position2 = "graduate";

            Person person2 = new Person { Name = name2, Company = company2, Position = position2 };

            group1.AddPerson(person2);

            Group group2 = new Group();

            string name3 = "chao";
            string company3 = "ynu";
            string position3 = "graduate";

            Person person3 = new Person { Name = name3, Company = company3, Position = position3 };

            group2.AddPerson(person3);

            Group group3 = new Group();

            string name4 = "maichao";
            string company4 = "ynu";
            string position4 = "student";

            Person person4 = new Person { Name = name4, Company = company4, Position = position4 };

            group3.AddPerson(person4);

            Assert.AreEqual(1, group3.Amount);

            string name5 = "mai";
            string company5 = "ynu";
            string position5 = "graduate";

            Person person5 = new Person { Name = name5, Company = company5, Position = position5 };

            group3.AddPerson(person5);

            contacts.AddGroup(group1);
            contacts.AddGroup(group2);
            contacts.AddGroup(group3);

            Assert.AreEqual(4, contacts.GroupsAmount);
            Assert.AreEqual(5, contacts.PersonsAmount);
        }
예제 #9
0
        public void LoadContacts()
        {
            //BinaryDataAccess bda = new BinaryDataAccess();
            //this.contacts = bda.LoadData("data.dat");

            Group group1 = new Group();
            group1.Name = "Family";

            string name1 = "maichao";
            string company1 = "ynu";
            string position1 = "student";

            Person person1 = new Person { Name = name1, Company = company1, Position = position1 };

            Pair<string, string> num1 = new Pair<string, string>("187", "cellphone");
            Pair<Guid, Pair<string, string>> phone1 = new Pair<Guid, Pair<string, string>>(Guid.NewGuid(), num1);

            person1.AddPhone(phone1);

            Pair<string, string> num2 = new Pair<string, string>("187", "cellphone");
            Pair<Guid, Pair<string, string>> phone2 = new Pair<Guid, Pair<string, string>>(Guid.NewGuid(), num2);

            person1.AddPhone(phone2);

            group1.AddPerson(person1);

            string name2 = "mai";
            string company2 = "ynu";
            string position2 = "graduate";

            Person person2 = new Person { Name = name2, Company = company2, Position = position2 };

            group1.AddPerson(person2);

            Group group2 = new Group();
            group2.Name = "Work";

            string name3 = "chao";
            string company3 = "ynu";
            string position3 = "graduate";

            Person person3 = new Person { Name = name3, Company = company3, Position = position3 };

            group2.AddPerson(person3);

            Group group3 = new Group();
            group3.Name = "Other";

            string name4 = "maichao";
            string company4 = "ynu";
            string position4 = "student";

            Person person4 = new Person { Name = name4, Company = company4, Position = position4 };

            group3.AddPerson(person4);

            string name5 = "mai";
            string company5 = "ynu";
            string position5 = "graduate";

            Person person5 = new Person { Name = name5, Company = company5, Position = position5 };

            group3.AddPerson(person5);

            string name = "maimai";
            string company = "ynu";
            string position = "graduate";

            Person person = new Person { Name = name, Company = company, Position = position };

            group1.AddPerson(person);
            group2.AddPerson(person);
            group3.AddPerson(person);

            contacts.AddGroup(group1);
            contacts.AddGroup(group2);
            contacts.AddGroup(group3);
        }
예제 #10
0
        public List<Group> SearchPerson(string condition)
        {
            List<Group> resGroup = new List<Group>();

            foreach (var group in groups)
            {
                Group g = new Group() { Name = group.Name };
                var persons = group.Persons;

                foreach (var person in persons)
                {
                    Type t = typeof(Person);

                    var properties = t.GetProperties();

                    foreach (var property in properties)
                    {
                        object value = property.GetValue(person);

                        if (value != null && value.ToString() == condition)
                        {
                            if (!resGroup.Contains(g))
                            {
                                resGroup.Add(g);
                            }

                            if (!g.Persons.Contains(person))
                            {
                                g.AddPerson(person);
                            }
                        }
                    }
                }
            }

            return resGroup;
        }