public void Parse() { _logFile = File.OpenRead(_parentForm.txtLogfile.Text); _raidFile = File.OpenRead(_parentForm.txtDumpFile.Text); _raid = new Raid(_parentForm.txtRaidName.Text, DateTime.Parse(String.Format("{0} {1}", _parentForm.dtRaidDate.Text, _parentForm.dtStart.Text)), DateTime.Parse(String.Format("{0} {1}", _parentForm.dtRaidDate.Text, _parentForm.dtStart.Text)), DateTime.Parse(String.Format("{0} {1}", _parentForm.dtRaidDate.Text, _parentForm.dtEnd.Text)), int.Parse(_parentForm.txtPointsPerHour.Text), int.Parse(_parentForm.txtAtStartPoints.Text), int.Parse(_parentForm.txtAtEndPoints.Text)); // Get all the members found in the raid.xml ParseMembersFromRaidXML(); string line; var reader = new StreamReader(_logFile); while ((line = reader.ReadLine()) != null) { var entry = new LogEntry(line, _parentForm.dtRaidDate.Text); entry.Parse(); if (EntryIsValid(entry)) continue; switch (entry.Type) { case EventType.Loot: ParseLootInformation(entry); break; case EventType.Join: case EventType.JoinByLogger: ParseJoinInformation(entry); break; case EventType.Leave: case EventType.LeaveByLogger: ParseLeaveInformation(entry); break; } entries.Add(entry); } _logFile.Close(); _raidFile.Close(); CalculateRaidDurationForMembers(); }