/// <summary>
        /// Adds a survivor to a list of normal activity items
        /// </summary>
        /// <param name="survivor"></param>
        /// <param name="activityItems"></param>
        /// <returns></returns>
        public static LinkedList<BlissHiveLogActivityItem> AddSurvivor(BlissHiveLogSurvivor survivor,
                    LinkedList<BlissHiveLogActivityItem> activityItems)
        {
            LinkedList<BlissHiveLogActivityItem> result =
                new LinkedList<BlissHiveLogActivityItem>();

            foreach (BlissHiveLogActivityItem activityItem in activityItems) {
                result.AddLast(
                    new BlissHiveLogSurvivorActivityItem(
                        survivor, activityItem.quantity,
                        activityItem.item, activityItem.timestamp
                    )
                );
            }

            return result;
        }
 public BlissHiveSurvivorLogParseResultEntry(LogEntry entry, BlissHiveLogSurvivor survivor)
     : base(entry)
 {
     this.survivor = survivor;
     this.survivor.lastSignOfActivity = entry.timestampUnix;
 }
        void blissHivePlayerTree_AfterSelect(object sender, TreeViewEventArgs e)
        {
            if ((String)e.Node.Tag == "survivor") {
                this.dayzLogParserForm.blissHiveCardControl.SelectedIndex = 0;
                this.dayzLogParserForm.blissHivePlayerName.Text = "Player " + e.Node.Text;
                foreach (BlissHiveLogSurvivor survivor in LogController.GetInstance().blissHiveLogContainer.survivorContainer.survivors) {
                    if (survivor.username == e.Node.Text) {
                        this.selectedSurvivor = survivor;

                        // Fill the formatted data control
                        this.dayzLogParserForm.blissHivePlayerDataFormattedLogDataListView.Items.Clear();
                        foreach (BlissHiveLogEntry logEntry in survivor.logEntries) {
                            this.dayzLogParserForm.blissHivePlayerDataFormattedLogDataListView.Items.Add(
                                new ListViewItem(
                                    new String[3] { logEntry.timestamp, logEntry.functionName,
                                        String.Join(", ", logEntry.parameters) }
                                    )
                                );
                        }

                        // Fill the raw data control
                        StringBuilder stringBuilder = new StringBuilder("");
                        foreach (BlissHiveLogEntry logEntry in survivor.logEntries) {
                            stringBuilder.AppendLine(logEntry.original);
                        }
                        this.dayzLogParserForm.blissHivePlayerDataRawLogDataTextBox.Text = stringBuilder.ToString();

                        // Fill the combo box for the inventories
                        ComboBox inventoryComboBox = this.dayzLogParserForm.blissHivePlayerDataInventoryHistoryComboBox;
                        inventoryComboBox.Items.Clear();

                        foreach (BlissHiveLogInventory inv in survivor.inventories) {
                            inventoryComboBox.Items.Add(inv.originalLogEntry.timestamp);
                        }

                        // If selected, the list views will clear & fill
                        if (inventoryComboBox.Items.Count > 0)
                            inventoryComboBox.SelectedIndex = inventoryComboBox.Items.Count - 1;
                        else {
                            // If not selected, the list views need to be cleared still
                            this.dayzLogParserForm
                                .blissHivePlayerDataInventoryHistoryBackpackListView.Items.Clear();
                            this.dayzLogParserForm
                                .blissHivePlayerDataInventoryHistoryInventoryListView.Items.Clear();
                        }

                        // Fill the combo box for the debug log
                        ComboBox debugMonitorComboBox =
                            this.dayzLogParserForm.blissHivePlayerDataDebugMonitorHistoryComboBox;
                        debugMonitorComboBox.Items.Clear();

                        foreach (BlissHiveLogDebugMonitor debug in survivor.debugMonitors) {
                            debugMonitorComboBox.Items.Add(debug.originalLogEntry.timestamp);
                        }

                        // If selected, the list views will clear & fill
                        if (debugMonitorComboBox.Items.Count > 0)
                            debugMonitorComboBox.SelectedIndex = debugMonitorComboBox.Items.Count - 1;
                        else {
                            // If not selected, the list views need to be cleared still
                            this.dayzLogParserForm
                                .blissHivePlayerDataDebugMonitorHistoryListView.Items.Clear();
                        }

                        // Fill the activity log
                        ListView listView = this.dayzLogParserForm.blissHivePlayerDataActivityLogListView;
                        listView.Items.Clear();

                        foreach (BlissHiveLogActivityItem item in survivor.activity) {
                            ListViewItem listViewItem =
                                new ListViewItem(new String[2] { item.timestamp + "", item.ToString() });
                            listView.Items.Add(listViewItem);
                        }

                        // Enable all the tabs!
                        foreach (TabPage tab in this.dayzLogParserForm.blissHivePlayerDataTabControl.TabPages) {
                            tab.Enabled = true;
                        }

                        this.dayzLogParserForm.blissHivePlayerDataTabControl.Enabled = true;
                    }
                }
            }
        }
 public BlissHiveLogSurvivorActivityItem(BlissHiveLogSurvivor survivor,
     int quantity, BlissHiveLogItem item, String timestamp)
     : base(quantity, item, timestamp)
 {
     this.survivor = survivor;
 }