public void RemovePart(Part p) { IActionPossible canRemove = CanRemovePart(p); if (!canRemove.IsPossible) { throw new ArgumentException(canRemove.Reason); } _parts.Remove(p); }
public void RemoveSuitableModel(CarModel model) { IActionPossible canRemove = CanRemoveSuitableModel(model); if (!canRemove.IsPossible) { throw new ArgumentException(canRemove.Reason); } _availableInModels.Remove(model); }
public void AddPart(Part p) { IActionPossible canAdd = CanAddPart(p); if (!canAdd.IsPossible) { throw new ArgumentException(canAdd.Reason); } _parts.Add(p); }
public void AddSuitableModel(CarModel model) { IActionPossible canAdd = CanAddSuitableModel(model); if (!canAdd.IsPossible) { throw new ArgumentException(canAdd.Reason); } _availableInModels.Add(model); }
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 void RemoveConflictingPart(Part p) { IActionPossible canRemove = CanRemoveConflictingPart(p); if (!canRemove.IsPossible) { throw new ArgumentException(canRemove.Reason); } p._conflictingParts.Remove(this); _conflictingParts.Remove(p); }
public void AddConflictingPart(Part p) { IActionPossible canAdd = CanAddConflictingPart(p); if (!canAdd.IsPossible) { throw new ArgumentException(canAdd.Reason); } p._conflictingParts.Add(this); _conflictingParts.Add(p); }
public void ChangeModel(CarModel model) { IActionPossible canChange = CanChangeModel(model); if (!canChange.IsPossible) { throw new ArgumentException(canChange.Reason); } _model = model; _parts.RemoveAll(x => !x.AvailableInModels.Contains(_model)); }