Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
        /// <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);
            }
        }
Esempio n. 3
0
 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);
     }
 }