Example #1
0
        public void TestFileIO()
        {
            StudyPlan oriPlan = new StudyPlan {
                Semester = "2010 Fall"
            };

            oriPlan.Courses.Add(new Course
            {
                Id           = 1,
                Name         = "Python",
                LocationTime = new LocationTime {
                    Location = "sloan", Time = "Mon 12.10"
                }
            });
            oriPlan.Courses.Add(new Course
            {
                Id           = 2,
                Name         = "Distributed System",
                LocationTime = new LocationTime {
                    Location = "EME", Time = "Mon 16.15"
                }
            });

            const string           FileName   = "MultiObjectFile.xml";
            DataContractSerializer serializer = new DataContractSerializer(typeof(StudyPlan));

            // ---------------- serialize
            using (XmlWriter writer = XmlWriter.Create(FileName, new XmlWriterSettings {
                Indent = true
            }))
            {
                serializer.WriteObject(writer, oriPlan);
            }

            // ---------------- deserialize
            StudyPlan cpyPlan = null;

            using (XmlReader reader = XmlReader.Create(FileName))
            {
                cpyPlan = (StudyPlan)serializer.ReadObject(reader);
            }

            // ---------------- check
            Assert.AreEqual(oriPlan, cpyPlan);
        }
Example #2
0
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            if (object.ReferenceEquals(this, obj))
            {
                return(true);
            }

            if (obj is StudyPlan)
            {
                StudyPlan otherplan = (StudyPlan)obj;

                if ((this.Semester.Equals(otherplan.Semester)) &&
                    (m_course.Count == otherplan.m_course.Count))
                {
                    for (int index = 0; index < m_course.Count; ++index)
                    {
                        if (!m_course[index].Equals(otherplan.m_course[index]))
                        {
                            return(false);
                        }
                    }// for, iterate over each element course
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }