public BaseClassBoat(TypeOfBoat typeOfBoat, string id, decimal boatWeight, double maxSpeed, List <int> parkingId, DateTime deparureTime, DateTime arrivalTime) { TypeOfBoat = typeOfBoat; IDNumber = id; BoatWeight = boatWeight; MaximumSpeed = maxSpeed; ParkingId = parkingId; DepartureTime = deparureTime; ArrivalTime = arrivalTime; }
//assign available parking number(depending on type of baot) private static List <int> AssignParkingLocation(TypeOfBoat boatType, string boatIdNumber) { switch (boatType) { case TypeOfBoat.RowingBoat: { ParkingPosition availablePosition = parkingPositionList.Where(x => (x.BoatIds.Count == 1 && x.BoatIds[0].StartsWith("R-")) || x.BoatIds.Count == 0) .OrderBy(x => x.ParkingId).FirstOrDefault(); if (availablePosition != null) { availablePosition.BoatIds.Add(boatIdNumber); return(new List <int> { availablePosition.ParkingId }); } } break; case TypeOfBoat.MotorBoat: { ParkingPosition availablePosition = parkingPositionList.Where(x => x.BoatIds.Count == 0).OrderBy(x => x.ParkingId).FirstOrDefault(); if (availablePosition != null) { availablePosition.BoatIds.Add(boatIdNumber); return(new List <int> { availablePosition.ParkingId }); } } break; case TypeOfBoat.SailBoat: { var availableBlockIds = parkingPositionList.Where(x => x.BoatIds.Count == 0).Select(x => x.ParkingId).ToList(); if (availableBlockIds.Count > 0) { List <int> ids = GetBlockId(availableBlockIds, 2); if (ids != null) { parkingPositionList.Where(x => ids.Contains(x.ParkingId)).ToList().ForEach(x => { x.BoatIds.Add(boatIdNumber); }); return(ids); } } } break; case TypeOfBoat.CargoShip: { var availableBlockIds = parkingPositionList.Where(x => x.BoatIds.Count == 0).Select(x => x.ParkingId).ToList(); if (availableBlockIds.Count > 0) { List <int> ids = GetBlockId(availableBlockIds, 4); if (ids != null) { parkingPositionList.Where(x => ids.Contains(x.ParkingId)).ToList().ForEach(x => { x.BoatIds.Add(boatIdNumber); }); return(ids); } } } break; } return(null); }
//adding parking ids to boats in parking list private static void AddParkingIdOfBoatsToParkingList(List <int> parkingIds, string boatIdNumber, TypeOfBoat boatType) { parkingPositionList.Where(x => parkingIds.Contains(x.ParkingId)).ToList().ForEach(x => { x.BoatIds.Add(boatIdNumber); }); }
public MotorBoat(TypeOfBoat typeOfBoat, string id, decimal boatWeight, double maxSpeed, int maxHorsePower, List <int> parkingId, DateTime deparureTime, DateTime arrivalTime) : base(typeOfBoat, id, boatWeight, maxSpeed, parkingId, deparureTime, arrivalTime) { MaxHorsePower = maxHorsePower; }
public SailBoat(TypeOfBoat typeOfBoat, string id, decimal boatWeight, double maxSpeed, int boatLength, List <int> parkingId, DateTime deparureTime, DateTime arrivalTime) : base(typeOfBoat, id, boatWeight, maxSpeed, parkingId, deparureTime, arrivalTime) { BoatLength = boatLength; }
public RowingBoat(TypeOfBoat typeOfBoat, string id, decimal boatWeight, double maxSpeed, int numberOfPassengers, List <int> parkingId, DateTime deparureTime, DateTime arriveAt) : base(typeOfBoat, id, boatWeight, maxSpeed, parkingId, deparureTime, arriveAt) { NumberOfPassengers = numberOfPassengers; }
public CargoShips(TypeOfBoat typeOfBoat, string id, decimal boatWeight, double maxSpeed, int numberOfContainers, List <int> parkingId, DateTime deparureTime, DateTime arrivalTime) : base(typeOfBoat, id, boatWeight, maxSpeed, parkingId, deparureTime, arrivalTime) { NumberOfContainers = numberOfContainers; }