Exemplo n.º 1
0
        public ICustomerInformationCollector CustomizeProgram(ICustomWashProgramBuilder builder)
        {
            IWashProgram program = builder.Build();

            _motherboard.Transmit(new WashProgramSelectedSignal(program));

            return(this);
        }
Exemplo n.º 2
0
        public ICustomerInformationCollector SelectBuiltInProgram(ProgramType type)
        {
            IWashProgram program = _programFactory.Create(type);

            _motherboard.Transmit(new WashProgramSelectedSignal(program));

            return(this);
        }
Exemplo n.º 3
0
        public virtual Money Calculate(IWashProgram program, Currency currency)
        {
            Money totalPrice = program
                .GetWashSteps()
                .Select(x => x.Price)
                .Aggregate((x, y) => x + y);

            return converter.Convert(totalPrice, currency);
        }
        public void Wash(IVehicle vehicle, IWashProgram program)
        {
            if (!_sensor.IsDirty(vehicle))
            {
                _motherboard.Transmit(new VehicleAlreadyCleanSignal());
                return;
            }

            _washTunnel.Wash(vehicle, program);
        }
 public ICurrencyPicker Select(IWashProgram program)
 {
     _invoice.WashProgram = program;
     return(this);
 }
 public void Wash(IVehicle vehicle, IWashProgram program)
 {
     _state.Handle(vehicle, program);
 }
Exemplo n.º 7
0
 public override Money Calculate(IWashProgram program, Currency currency)
 {
     Money totalPrice = base.Calculate(program, currency);
     return totalPrice - (Discount / 100m * totalPrice);
 }
Exemplo n.º 8
0
 public WashProgramSelectedSignal(IWashProgram program)
 {
     Program = program;
 }