public IReadOnlyDictionary <Item, TransferData> GetStationTaskTransfersSum(ImmutableList <Vehicle> vehicles, VehicleStationLocation station, out bool isIncomplete, out bool isEstimated) { TaskTransfers transfersSum = new TaskTransfers(); GetStationTaskTransfersSum(vehicles, station, out isIncomplete, out isEstimated, transfersSum); return(transfersSum.Transfers); }
public void GetStationTaskTransfersSum(ImmutableList <Vehicle> vehicles, VehicleStationLocation station, out bool isIncomplete, out bool isEstimated, TaskTransfers transfersSum) { int count = vehicles.Count; isIncomplete = false; isEstimated = false; for (int i = 0; i < vehicles.Count; i++) { if (!vehicles[i].IsEnabled) { continue; } VehicleScheduleData scheduleData = this[vehicles[i]]; IReadOnlyDictionary <Item, TransferData> transfers = scheduleData?.Capacity.GetTransfersPerStation()?[station]; float?mult; if (transfers != null && (mult = scheduleData.ScheduleMonthlyMultiplier) != null) { isEstimated |= scheduleData.ScheduleAvereageDuration.Estimated; transfersSum.Add(transfers, mult, scheduleData.ScheduleAvereageDuration.Estimated); } else { isIncomplete = true; } } }