public static void ReadEntries(string filePath, IOrganizer org) { StreamReader reader = new StreamReader(filePath); using (reader) { string[] entries = reader.ReadToEnd().Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < entries.Length; i++) { entries[i] = entries[i].Replace("Type: ", ""); entries[i] = entries[i].Replace("Subject: ", ""); entries[i] = entries[i].Replace("Comments: ", ""); entries[i] = entries[i].Replace("Date: ", ""); entries[i] = entries[i].Replace("CreatedOn: ", ""); } for (int i = 0; i < entries.Length; i++) { switch (entries[i]) { case "Anniversary": Anniversary anniversary = new Anniversary(entries[i + 1], entries[i + 2], DateTime.Parse(entries[i + 3])); anniversary.CreatedOn = DateTime.Parse(entries[i + 4]); org.Add(anniversary); i += 4; break; case "Meeting": Meeting meeting = new Meeting(entries[i + 1], entries[i + 2], DateTime.Parse(entries[i + 3])); meeting.CreatedOn = DateTime.Parse(entries[i + 4]); org.Add(meeting); i += 4; break; case "ToDo": ToDo toDo = new ToDo(entries[i + 1], entries[i + 2], DateTime.Parse(entries[i + 3])); toDo.CreatedOn = DateTime.Parse(entries[i + 4]); org.Add(toDo); i += 4; break; case "Memo": Memo memo = new Memo(entries[i + 1], entries[i + 2]); memo.CreatedOn = DateTime.Parse(entries[i + 4]); org.Add(memo); i += 3; break; default: throw new InvalidDataException(); } } } }