Exemple #1
0
        private void readInventory(CargoMonitorConfiguration configuration = null)
        {
            lock (inventoryLock)
            {
                // Obtain current cargo inventory from configuration
                configuration = configuration ?? CargoMonitorConfiguration.FromFile();
                cargoCarried  = configuration.cargocarried;
                updateDat     = configuration.updatedat;

                // Build a new inventory
                List <Cargo> newInventory = new List <Cargo>();

                // Start with the materials we have in the log
                foreach (Cargo cargo in configuration.cargo)
                {
                    if (cargo.commodityDef == null)
                    {
                        cargo.commodityDef = CommodityDefinition.FromEDName(cargo.edname);
                    }
                    cargo.CalculateNeed();
                    newInventory.Add(cargo);
                }

                // Now order the list by name
                newInventory = newInventory.OrderBy(c => c.invariantName).ToList();

                // Update the inventory
                inventory.Clear();
                foreach (Cargo cargo in newInventory)
                {
                    inventory.Add(cargo);
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Obtain cargo configuration from a file.  If the file name is not supplied the the default
        /// path of Constants.Data_DIR\cargomonitor.json is used
        /// </summary>
        public static CargoMonitorConfiguration FromFile(string filename = null)
        {
            if (filename == null)
            {
                filename = Constants.DATA_DIR + @"\cargomonitor.json";
            }

            CargoMonitorConfiguration configuration = new CargoMonitorConfiguration();

            if (File.Exists(filename))
            {
                string json = Files.Read(filename);
                if (json != null)
                {
                    try
                    {
                        configuration = FromJsonString(json);
                    }
                    catch (Exception ex)
                    {
                        Logging.Debug("Failed to read cargo configuration", ex);
                    }
                }
            }
            if (configuration == null)
            {
                configuration = new CargoMonitorConfiguration();
            }

            configuration.dataPath = filename;
            return(configuration);
        }
Exemple #3
0
        public void writeInventory()
        {
            lock (inventoryLock)
            {
                // Write cargo configuration with current inventory
                CargoMonitorConfiguration configuration = new CargoMonitorConfiguration();

                configuration.cargo        = inventory;
                configuration.cargocarried = cargoCarried;
                configuration.ToFile();
            }
            // Make sure the UI is up to date
            RaiseOnUIThread(InventoryUpdatedEvent, inventory);
        }
Exemple #4
0
        /// <summary>
        /// Obtain cargo configuration from a json.
        /// </summary>
        public static CargoMonitorConfiguration FromJson(dynamic json)
        {
            CargoMonitorConfiguration configuration = new CargoMonitorConfiguration();

            if (json != null)
            {
                try
                {
                    configuration = JsonConvert.DeserializeObject <CargoMonitorConfiguration>(json);
                }
                catch (Exception ex)
                {
                    Logging.Debug("Failed to obtain cargo configuration", ex);
                }
            }
            return(configuration);
        }
Exemple #5
0
 public void writeInventory()
 {
     lock (inventoryLock)
     {
         // Write cargo configuration with current inventory
         CargoMonitorConfiguration configuration = new CargoMonitorConfiguration();
         cargoCarried = 0;
         foreach (Cargo cargo in inventory)
         {
             cargoCarried += cargo.total;
         }
         EDDI.Instance.eventHandler(new CargoUpdatedEvent(DateTime.UtcNow, cargoCarried));
         configuration.cargo        = inventory;
         configuration.cargocarried = cargoCarried;
         configuration.ToFile();
     }
     // Make sure the UI is up to date
     RaiseOnUIThread(InventoryUpdatedEvent, inventory);
 }
Exemple #6
0
 public void initializeCargoMonitor(CargoMonitorConfiguration configuration = null)
 {
     readInventory(configuration);
     Logging.Info($"Initialized {MonitorName()}");
 }
Exemple #7
0
 public void initializeCargoMonitor(CargoMonitorConfiguration configuration = null)
 {
     readInventory(configuration);
     Logging.Info("Initialised " + MonitorName() + " " + MonitorVersion());
 }
Exemple #8
0
 /// <summary>
 /// Create a new CargoMonitor, optionally passing in a non-default configuration
 /// </summary>
 /// <param name="configuration">The configuration to use. If null, it will be read from the file system</param>
 public CargoMonitor(CargoMonitorConfiguration configuration)
 {
     inventory = new ObservableCollection <Cargo>();
     BindingOperations.CollectionRegistering += Inventory_CollectionRegistering;
     initializeCargoMonitor(configuration);
 }