public IFan RegisterFan(IArea area, Enum id, IFanAdapter adapter) { var fan = new Fan($"{area.Id}.{id}", adapter, _settingsService); area.RegisterComponent(fan); return(fan); }
private Fan CreateFan(IFanAdapter adapter) { var testController = new TestController(); var settingsService = testController.GetInstance <ISettingsService>(); var fan = new Fan("Fan1", adapter, settingsService); return(fan); }
public Fan(string id, IFanAdapter adapter, ISettingsService settingsService) : base(id) { _adapter = adapter ?? throw new ArgumentNullException(nameof(adapter)); _settingsService = settingsService ?? throw new ArgumentNullException(nameof(settingsService)); _commandExecutor.Register <ResetCommand>(c => ResetState()); _commandExecutor.Register <TurnOffCommand>(c => SetLevelInternal(0)); _commandExecutor.Register <TurnOnCommand>(c => SetLevelInternal(GetLevelFeature().DefaultActiveLevel)); _commandExecutor.Register <SetLevelCommand>(c => SetLevelInternal(c.Level)); _commandExecutor.Register <IncreaseLevelCommand>(c => SetLevelInternal(_currentLevel + 1)); _commandExecutor.Register <DecreaseLevelCommand>(c => SetLevelInternal(_currentLevel - 1)); }