public LootItem(LogEntry logEntry) { Entry = logEntry; _lootDetail = GetLootDetail(); if (_lootDetail.Length == 3) { Name = _lootDetail[1].Trim().Trim('[').Trim(']'); Looter = _lootDetail[0].Trim().Trim('[').Trim(']'); Paid = int.Parse(_lootDetail[2].Trim()); } }
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(); }
private void ParseLeaveInformation(LogEntry entry) { var memberName = ""; if (entry.Type == EventType.LeaveByLogger) { memberName = Settings.Get("LogUser"); } else { var pos = entry.EventText.IndexOf("]"); memberName = entry.EventText.Substring(1, pos - 1); } if (!MemberExists(memberName)) Members.Add(new RaidMember(memberName)); var member = GetMember(memberName); member.Leaves.Add(entry.EventTime); }
private void ParseLootInformation(LogEntry entry) { var lootItem = new LootItem(entry); if (lootItem.Name != null) LootItems.Add(lootItem); }
private bool EntryIsValid(LogEntry entry) { var startTimeOk = entry.EventTime.Ticks > _raid.StartTime.Ticks; var endTimeOk = entry.EventTime.Ticks < _raid.EndTime.Ticks; var IsDuplicate = (entries.Exists(e => e.Entry == entry.Entry)); var IsValid = entry.Type != EventType.Invalid; return !startTimeOk || !endTimeOk || IsDuplicate || !IsValid; }