public void Add(TransfersPerStationCont transfPerStation, float?multiplier, bool estimated = false)
 {
     foreach (KeyValuePair <VehicleStationLocation, TaskTransfers> pair in transfPerStation._transfPerSt)
     {
         Add(pair.Key, pair.Value, multiplier, estimated);
     }
 }
Esempio n. 2
0
        public TransfersPerStationCont GetRouteTransfersPerStation(bool skipForOnlyOneVehicle = true)
        {
            if (!HasValidData || VehicleSchedule.Vehicle.Route != null)
            {
                TransfersPerStationCont totalTransfers = new TransfersPerStationCont();
                VehicleRoute            route          = VehicleSchedule.Vehicle.Route;
                if (skipForOnlyOneVehicle && route.Vehicles.Count == 1)
                {
                    return(null);
                }
                foreach (Vehicle vehicle in route.Vehicles.ToArray())
                {
                    if (vehicle.IsEnabled)
                    {
                        VehicleScheduleData vehicleData = VehicleScheduleDataManager.Current[vehicle];
                        float?mult;
                        if (vehicleData == null || !vehicleData.Capacity.HasValidData || (mult = vehicleData.ScheduleMonthlyMultiplier) == null)
                        {
                            return(null);
                        }
                        totalTransfers.Add(vehicleData.Capacity.GetTransfersPerStation(), mult, vehicleData.ScheduleAvereageDuration.Estimated);
                    }
                }

                return(totalTransfers.AsReadonly());
            }
            return(null);
        }
Esempio n. 3
0
 public void MarkDirty()
 {
     _loadedTotalTransfers   = false;
     _loadedPerStationTransf = false;
     _totalTransfers         = null;
     _perStationTrasf        = null;
     _transfers.Clear();
 }
Esempio n. 4
0
 public TransfersPerStationCont GetTransfersPerStation(int unitIndex)
 {
     Invalidate();
     if (_transfPerStationPerUnit == null)
     {
         _transfPerStationPerUnit = new Dictionary <int, TransfersPerStationCont>();
     }
     if (!_transfPerStationPerUnit.TryGetValue(unitIndex, out TransfersPerStationCont result))
     {
         Dictionary <RootTask, TaskTransfers> transfers = TransfPerUnit?.GetValueOrDefault(unitIndex);
         result = new TransfersPerStationCont(transfers);
         _transfPerStationPerUnit.Add(unitIndex, result);
     }
     return(result.AsReadonly());
 }
 private TransfersPerStationCont(TransfersPerStationCont asReadonly)
 {
     _transfPerSt = asReadonly._transfPerSt;
     isReadonly   = true;
 }