Reservation reset fix
This commit is contained in:
parent
f26a570c93
commit
85dd77265d
@ -54,6 +54,12 @@ namespace Parking
|
|||||||
|
|
||||||
private void ReserveInitialSpots()
|
private void ReserveInitialSpots()
|
||||||
{
|
{
|
||||||
|
for (var j = 3; j >= 0; j--)
|
||||||
|
foreach (Spot spot in _spotMap[j]) {
|
||||||
|
spot.Reserved = false;
|
||||||
|
spot.ReservedPriority = 0;
|
||||||
|
}
|
||||||
|
|
||||||
for (var i = 0; i < Math.Min(DataImporter.Drivers.Count, _initialConfigurationSpotCount); i++) {
|
for (var i = 0; i < Math.Min(DataImporter.Drivers.Count, _initialConfigurationSpotCount); i++) {
|
||||||
bool found = false;
|
bool found = false;
|
||||||
// Find spot
|
// Find spot
|
||||||
@ -80,7 +86,7 @@ namespace Parking
|
|||||||
_currentTime += TimeSpan.FromMinutes(stepTime);
|
_currentTime += TimeSpan.FromMinutes(stepTime);
|
||||||
if (_currentTime > EndTime) {
|
if (_currentTime > EndTime) {
|
||||||
_currentTime = StartTime;
|
_currentTime = StartTime;
|
||||||
// TODO: Reset spot reservations
|
ReserveInitialSpots();
|
||||||
ResetDrivers();
|
ResetDrivers();
|
||||||
_rejectedDrivers = new[] {0, 0, 0, 0};
|
_rejectedDrivers = new[] {0, 0, 0, 0};
|
||||||
rejectedText.text = $"Małe: {_rejectedDrivers[0]} Średnie: {_rejectedDrivers[1]} " +
|
rejectedText.text = $"Małe: {_rejectedDrivers[0]} Średnie: {_rejectedDrivers[1]} " +
|
||||||
@ -93,7 +99,7 @@ namespace Parking
|
|||||||
|
|
||||||
|
|
||||||
foreach (Driver driver in DataImporter.Drivers) {
|
foreach (Driver driver in DataImporter.Drivers) {
|
||||||
// TODO: Check if car can stay before other reservation
|
// TODO: Check if car can stay before other reservation - may not work for priority-based reservations
|
||||||
var triesToPark = _currentTime <= driver.Times[3].TimeOfDay && _currentTime > driver.Times[2].TimeOfDay;
|
var triesToPark = _currentTime <= driver.Times[3].TimeOfDay && _currentTime > driver.Times[2].TimeOfDay;
|
||||||
var leftTheParking = _currentTime > driver.Times[3].TimeOfDay && driver.Parked;
|
var leftTheParking = _currentTime > driver.Times[3].TimeOfDay && driver.Parked;
|
||||||
if (triesToPark && !driver.Parked && !driver.Rejected) {
|
if (triesToPark && !driver.Parked && !driver.Rejected) {
|
||||||
@ -114,8 +120,13 @@ namespace Parking
|
|||||||
|
|
||||||
private void ResetDrivers()
|
private void ResetDrivers()
|
||||||
{
|
{
|
||||||
foreach (Driver driver in DataImporter.Drivers)
|
foreach (Driver driver in DataImporter.Drivers){
|
||||||
|
if (driver.Spot != null) {
|
||||||
|
driver.Spot.Reserved = false;
|
||||||
|
driver.Spot.ReservedPriority = 0;
|
||||||
|
}
|
||||||
driver.Reset();
|
driver.Reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool FindReservedSpot(Driver driver, out Spot spot)
|
private bool FindReservedSpot(Driver driver, out Spot spot)
|
||||||
@ -150,6 +161,7 @@ namespace Parking
|
|||||||
(spot.ParkingDirection == driver.ParkingPreference ||
|
(spot.ParkingDirection == driver.ParkingPreference ||
|
||||||
spot.ParkingDirection == ParkingPreference.Any)
|
spot.ParkingDirection == ParkingPreference.Any)
|
||||||
&& !spot.Reserved;
|
&& !spot.Reserved;
|
||||||
|
|
||||||
if (spotAvailable) {
|
if (spotAvailable) {
|
||||||
PlaceDriverOnSpot(driver, spot);
|
PlaceDriverOnSpot(driver, spot);
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user