public ICustomerInformationCollector CustomizeProgram(ICustomWashProgramBuilder builder) { IWashProgram program = builder.Build(); _motherboard.Transmit(new WashProgramSelectedSignal(program)); return(this); }
public ICustomerInformationCollector SelectBuiltInProgram(ProgramType type) { IWashProgram program = _programFactory.Create(type); _motherboard.Transmit(new WashProgramSelectedSignal(program)); return(this); }
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); }
public override Money Calculate(IWashProgram program, Currency currency) { Money totalPrice = base.Calculate(program, currency); return totalPrice - (Discount / 100m * totalPrice); }
public WashProgramSelectedSignal(IWashProgram program) { Program = program; }