示例#1
0
        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()
     });
 }
示例#3
0
        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>()
            });
        }