Exemple #1
0
        private void AddPart(CarPart.CarPart part)
        {
            _carCost += part.Cost;
            IActionPossible canAdd = CanAddPart(part);

            if (!canAdd.IsPossible)
            {
                throw new CarPartException(canAdd.Reason, part);
            }

            _mainCarParts.Add(part as T);
        }
Exemple #2
0
        public IActionPossible CanAddPart(CarPart.CarPart carPart)
        {
            if (carPart is null)
            {
                return(new ActionImpossible("Cannot add null part"));
            }

            if (Contains(carPart as T))
            {
                return(new ActionImpossible("Part already added"));
            }

            if (!carPart.AvailableForThisCar(this).IsPossible)
            {
                return(new ActionImpossible(carPart.AvailableForThisCar(this).Reason));
            }

            return(new ActionPossible());
        }
Exemple #3
0
 public static int CompareByCost(CarPart.CarPart firstPart, CarPart.CarPart secondPart)
 {
     return(firstPart.Cost.CompareTo(secondPart.Cost));
 }
 public CarPartException(string message, CarPart.CarPart carPart) : base(message)
 {
     CarPart  = carPart;
     dateTime = DateTime.Now;
 }
Exemple #5
0
 public static int CompareByManufacturer(CarPart.CarPart firstPart, CarPart.CarPart secondPart)
 {
     return(String.Compare(firstPart.Manufacturer, secondPart.Manufacturer, StringComparison.Ordinal));
 }