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); }
public void SetRule(ICommandSuccessRule rule) { _rule = rule; }