Example #1
0
        // Return the associate extended data for a given bill, creating a new association
        // if required.
        public ExtendedBillData GetExtendedDataFor(Bill_Production bill)
        {
            var loadId = GetBillId(bill);

            if (_store.TryGetValue(loadId, out ExtendedBillData data))
            {
                return(data);
            }

            ExtendedBillData newExtendedData;

            if (bill is IBillWithThingFilter)
            {
                Main.Instance.Logger.Warning(
                    "IW.FoundOldBillText".Translate() + " " + $"({bill.GetUniqueLoadID()})" + ", " + "IW.MigratingToNewFormat".Translate());

                newExtendedData = new ExtendedBillData(bill);
            }
            else
            {
                newExtendedData = new ExtendedBillData();
                if (CanOutputBeFiltered(bill))
                {
                    newExtendedData.SetDefaultFilter(bill);
                }
            }

            _store[loadId] = newExtendedData;
            return(newExtendedData);
        }