Beispiel #1
0
        private IDeviceCommand CreateLightingCommandByTagsAndValues(List <string> tags, List <bool> boolValues, EntityMetadata entityMetadata, CommandTypesEnum commandType, IEnumerable <IStarter> starters)
        {
            if (starters.Any((starter => { return(starter.IsInRepairState != null && starter.IsInRepairState.Value); })))
            {
                if (!tags.Any(s => s.Contains(DeviceStringKeys.DeviceCommandsTagKeys.COMMAND_REPAIR_STARTER)))
                {
                    throw new ArgumentException("Пускатель в режиме ремонта");
                }
            }
            StartersCommand startersCommand = _container.Resolve <StartersCommand>();

            startersCommand.EntityMetadata = entityMetadata;
            startersCommand.SetTag(tags.ToArray());
            startersCommand.SetValue(boolValues.ToArray());
            startersCommand.CommandType = commandType;
            startersCommand.Starters.Clear();
            startersCommand.Starters.AddRange(starters);

            ICommandSuccessRule commandSuccessRule = _container.Resolve <ICommandSuccessRule>();

            commandSuccessRule.SetRuleData(starters.Select((starter => starter.StarterNumber)).ToList(), commandType);
            startersCommand.SetRule(commandSuccessRule);

            return(startersCommand);
        }
Beispiel #2
0
 public void SetRule(ICommandSuccessRule rule)
 {
     _rule = rule;
 }