public override LogParseResult Parse()
        {
            LinkedList <LogParseResultEntry> result = new LinkedList <LogParseResultEntry>();

            BlissHiveLogContainer blissHiveLogContainer = (BlissHiveLogContainer)this.container;

            foreach (BlissHiveLogObject logObject in blissHiveLogContainer.logObjectContainer.logObjects)
            {
                for (int i = 0; i < logObject.inventories.Count - 1; i++)
                {
                    BlissHiveLogInventory inv     = logObject.inventories.ElementAt(i);
                    BlissHiveLogInventory nextInv = logObject.inventories.ElementAt(i + 1);

                    LinkedList <BlissHiveLogActivityItem> changedItems =
                        BlissHiveLogInventory.GetItemDifference(inv, nextInv);

                    changedItems = BlissHiveLogInventory.AddObject(logObject, changedItems);

                    BlissHiveObjectActivityLogParseResultEntry change =
                        new BlissHiveObjectActivityLogParseResultEntry(nextInv.originalLogEntry);
                    change.changedItems = changedItems;

                    result.AddLast(change);
                }
            }

            this.onParseProgressListeners = null;
            return(new LogParseResult(result));
        }
        public override LogParseResult Parse()
        {
            LinkedList<LogParseResultEntry> result = new LinkedList<LogParseResultEntry>();

            BlissHiveLogContainer blissHiveLogContainer = (BlissHiveLogContainer)this.container;

            foreach( BlissHiveLogObject logObject in blissHiveLogContainer.logObjectContainer.logObjects ){
                for( int i = 0; i < logObject.inventories.Count - 1; i++ ){
                    BlissHiveLogInventory inv = logObject.inventories.ElementAt(i);
                    BlissHiveLogInventory nextInv = logObject.inventories.ElementAt(i + 1);

                    LinkedList<BlissHiveLogActivityItem> changedItems =
                        BlissHiveLogInventory.GetItemDifference(inv, nextInv);

                    changedItems = BlissHiveLogInventory.AddObject(logObject, changedItems);

                    BlissHiveObjectActivityLogParseResultEntry change =
                        new BlissHiveObjectActivityLogParseResultEntry(nextInv.originalLogEntry);
                    change.changedItems = changedItems;

                    result.AddLast(change);
                }
            }

            this.onParseProgressListeners = null;
            return new LogParseResult(result);
        }