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); } }
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); }
public void MarkDirty() { _loadedTotalTransfers = false; _loadedPerStationTransf = false; _totalTransfers = null; _perStationTrasf = null; _transfers.Clear(); }
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; }