Exemplo n.º 1
0
        public void RemovePart(Part p)
        {
            IActionPossible canRemove = CanRemovePart(p);

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

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

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

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

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

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

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

            _availableInModels.Add(model);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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));
        }