Example #1
0
        public void RemovePart(Part p)
        {
            IActionPossible canRemove = CanRemovePart(p);

            if (!canRemove.IsPossible)
            {
                throw new ArgumentException(canRemove.Reason);
            }

            _parts.Remove(p);
        }
Example #2
0
        public void RemoveSuitableModel(CarModel model)
        {
            IActionPossible canRemove = CanRemoveSuitableModel(model);

            if (!canRemove.IsPossible)
            {
                throw new ArgumentException(canRemove.Reason);
            }

            _availableInModels.Remove(model);
        }
Example #3
0
        public void AddPart(Part p)
        {
            IActionPossible canAdd = CanAddPart(p);

            if (!canAdd.IsPossible)
            {
                throw new ArgumentException(canAdd.Reason);
            }

            _parts.Add(p);
        }
Example #4
0
        public void AddSuitableModel(CarModel model)
        {
            IActionPossible canAdd = CanAddSuitableModel(model);

            if (!canAdd.IsPossible)
            {
                throw new ArgumentException(canAdd.Reason);
            }

            _availableInModels.Add(model);
        }
Example #5
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);
        }
Example #6
0
        public void RemoveConflictingPart(Part p)
        {
            IActionPossible canRemove = CanRemoveConflictingPart(p);

            if (!canRemove.IsPossible)
            {
                throw new ArgumentException(canRemove.Reason);
            }

            p._conflictingParts.Remove(this);
            _conflictingParts.Remove(p);
        }
Example #7
0
        public void AddConflictingPart(Part p)
        {
            IActionPossible canAdd = CanAddConflictingPart(p);

            if (!canAdd.IsPossible)
            {
                throw new ArgumentException(canAdd.Reason);
            }

            p._conflictingParts.Add(this);
            _conflictingParts.Add(p);
        }
Example #8
0
        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));
        }