public PowerZoneSettingsProviderResult Provide(int powerZoneId, ControllerState controllerState) { var powerZone = controllerState.PowerZoneIdToState.GetValueOrDefault(powerZoneId); if (powerZone == null) { return(null); } var powerZoneModel = powerZone.PowerZone; return(new PowerZoneSettingsProviderResult { Name = powerZoneModel.Name, PowerLimitValue = powerZoneModel.MaxUsage, PowerLimitUnit = powerZoneModel.UsageUnit, PowerLimitUnits = EnumExtensions.AsDictionary <UsageUnit>(), AffectedHeatersIds = powerZoneModel.Heaters.Select(x => x.HeaterId).ToArray(), Heaters = controllerState.HeaterIdToState .Values .Select(x => new PowerZoneSettingsProviderResult.AffectedHeaterData { Id = x.Heater.HeaterId, Name = x.Heater.Name, Assignment = x.Heater.PowerZone == powerZoneModel ? null : x.Heater.PowerZone?.Name, PowerUnit = x.Heater.UsageUnit, OutputState = controllerState.HeaterIdToState[x.Heater.HeaterId].OutputState }) .ToList(), RoundRobinIntervalMinutes = powerZoneModel.RoundRobinIntervalMinutes, SwitchDelay = powerZoneModel.SwitchDelayBetweenOutputsSeconds }); }
public NewPowerZoneOptionsProviderResult Provide(ControllerState controllerState, Building model) { return(new NewPowerZoneOptionsProviderResult { PowerLimitUnits = EnumExtensions.AsDictionary <UsageUnit>(), Heaters = controllerState.HeaterIdToState .Values .Select(x => new PowerZoneSettingsProviderResult.AffectedHeaterData { Id = x.Heater.HeaterId, Name = x.Heater.Name, Assignment = x.Heater.PowerZone?.Name, PowerUnit = x.Heater.UsageUnit, OutputState = controllerState.HeaterIdToState[x.Heater.HeaterId].OutputState }) .ToList() }); }
public NewHeaterOptionsProviderResult Provide() { var availableHeaterModules = _powerOutputProvider.GetAvailableProtocolNames() .Select(x => { var powerOutput = _powerOutputProvider.Provide(x); return(new NewHeaterOptionsProviderResult.SupportedOutputProtocol { ProtocolName = x, ConfigurationOptions = powerOutput.ConfigurationOptions }); }) .ToList(); return(new NewHeaterOptionsProviderResult { AvailableHeaterModules = availableHeaterModules, UsageUnits = EnumExtensions.AsDictionary <UsageUnit>() }); }