示例#1
0
 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;
 }
示例#5
0
 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;
 }