public string RemoveCar(string plateNumber, string key, ref DateTime arrivalTime) { if (plateNumber == null || key == null) { return(Warnings.Null); } if (OccupiedSpaces.FirstOrDefault(a => a.PlateNumber == plateNumber) != null) { ParkingSpace car = OccupiedSpaces.FirstOrDefault(a => a.PlateNumber == plateNumber); if (car.LockKey == key) { OccupiedSpaces.Remove(car); arrivalTime = car.ArrivalTime; return(Warnings.Succes); } else { return(Warnings.InvalidKey); } } else { return(Warnings.NoCar); } }
/// <summary> /// Handles the shot coordinate with the ship /// </summary> /// <param name="shotCoordinate">Shot coordinate</param> public bool GotShot(ICoordinate shotCoordinate) { var occupiedCoordinate = OccupiedSpaces.Where(c => c.X == shotCoordinate.X && c.Y == shotCoordinate.Y).FirstOrDefault(); var previouslyShot = DamagedSpaces.Where(c => c.X == shotCoordinate.X && c.Y == shotCoordinate.Y).FirstOrDefault(); if (occupiedCoordinate != null) { if (previouslyShot == null) { Debug.WriteLine("Ship " + ShipId + " got shot on (" + shotCoordinate.X + ", " + shotCoordinate.Y + ") - HIT"); DamagedSpaces.Add(shotCoordinate); return(true); } else { Debug.WriteLine("Ship " + ShipId + " got shot AGAIN on (" + shotCoordinate.X + ", " + shotCoordinate.Y + ") - Counted as MISS"); // This space has already been damaged return(false); } } else { return(false); } }
public string AddCar(string plateNumber, string lockKey) { if (plateNumber == null || lockKey == null) { return(Warnings.Null); } if (OccupiedSpaces.Count < Capacity) { if (OccupiedSpaces.FirstOrDefault(a => a.PlateNumber == plateNumber) == null) { ParkingSpace park = new ParkingSpace() { PlateNumber = plateNumber, ArrivalTime = DateTime.Now, LockKey = lockKey }; OccupiedSpaces.Add(park); return(Warnings.Succes); } else { return(Warnings.Duplicate); } } else { return(Warnings.FullParking); } }