public void reloadCommodities(Data data)
        {
            List <string> allCommodities = new List <string>();

            if (readerCommodityData.rootSection != null)
            {
                foreach (string commodityGroup in readerCommodityData.rootSection.subsections.Keys)
                {
                    CmdrsLogDataReader.Section groupSection = readerCommodityData.rootSection.subsections[commodityGroup];

                    allCommodities.AddRange(groupSection.textContent);
                    data.commodities[commodityGroup] = groupSection.textContent.ToArray();
                }
            }

            data.allCommodities = allCommodities.ToArray();
        }
        public void reloadStations(Data data)
        {
            //TODO: Respect saveVersion!

            data.systems.Clear();

            /*
             * Systems
             */
            foreach (string system in readerSystemData.rootSection.subsections.Keys)
            {
                CmdrsLogDataReader.Section systemSection = readerSystemData.rootSection.subsections[system];

                SystemData sysData = new SystemData(system);
                data.systems[system] = sysData;

                /*
                 * Stations
                 */
                foreach (string station in systemSection.subsections.Keys)
                {
                    CmdrsLogDataReader.Section stationSection = systemSection.subsections[station];

                    StationData stationData = new StationData(station);
                    sysData.stations[station] = stationData;
                    stationSection.dictionary.TryGetValue("economy", out stationData.economy);
                    stationSection.dictionary.TryGetValue("government", out stationData.government);
                    stationSection.dictionary.TryGetValue("faction", out stationData.faction);
                    //TODO: Respect hidden
                    //TODO: Respect blackmarket?

                    //TODO: DAU-Safe code (make wrapper inside Section class!)
                    CmdrsLogDataReader.Section commoditiesSection = stationSection.subsections["Commodities"];

                    //TODO: Load Notes?

                    /*
                     * Commodities
                     */
                    foreach (string commodity in commoditiesSection.subsections.Keys)
                    {
                        CmdrsLogDataReader.Section commoditySection = commoditiesSection.subsections[commodity];

                        CommodityPrice cp = new CommodityPrice(commodity);
                        stationData.commodityData[commodity] = cp;
                        string status   = null;
                        string modTime  = null;
                        string price    = null;
                        string quantity = null;
                        commoditySection.dictionary.TryGetValue("status", out status);
                        commoditySection.dictionary.TryGetValue("modTime", out modTime);
                        commoditySection.dictionary.TryGetValue("price", out price);
                        commoditySection.dictionary.TryGetValue("quantity", out quantity);

                        int statusAsInt = 8;
                        int priceAsInt  = 0;

                        //TODO: respect modTime?
                        int.TryParse(price, out priceAsInt);
                        int.TryParse(quantity, out cp.quantity);
                        int.TryParse(status, out statusAsInt);

                        cp.demandType = parseStatusCmdrsLogV1(statusAsInt);

                        switch (cp.demandType)
                        {
                        case DemandType.HighDemand:
                        case DemandType.MediumDemand:
                        case DemandType.LowDemand:
                            cp.priceBuy = priceAsInt;
                            break;

                        case DemandType.HighSupply:
                        case DemandType.MediumSupply:
                        case DemandType.LowSupply:
                            cp.priceSell = priceAsInt;
                            break;
                        }
                    }
                }
            }
        }