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); }
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()); }
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; }
public static int CompareByManufacturer(CarPart.CarPart firstPart, CarPart.CarPart secondPart) { return(String.Compare(firstPart.Manufacturer, secondPart.Manufacturer, StringComparison.Ordinal)); }