internal Task InitAsync() { _stateChangedHandler = _messageHub .Handle <ThingStateChangedMessage>() .Where(msg => Id.Equals(msg.Id) && msg.NewState != State) .Synchronize() .Register(async msg => await OnStateChanged(msg)); _channelHandlerValueChangedHandler = _messageHub .Handle <ChannelHandlerValueChangedMessage>() .Where(msg => Id.Equals(msg.ChannelId)) .Synchronize() .Register(async msg => await OnChannelHandlerValueChanged(msg)); return(Task.CompletedTask); }
public Item(string name, IItemType itemType, IItemBinding binding, IMessageHub messageHub) { _binding = binding; _messageHub = messageHub; Name = name; ItemType = itemType; _sendCommandHandler = messageHub .Handle <SendCommandToItemMessage>() .Where(msg => msg.ItemName == Name) .Register(async msg => await OnSendCommandToItem(msg)); _itemValueUpdateHandler = messageHub .Handle <ItemValueUpdateMessage>() .Where(msg => msg.ItemName == Name) .Register(async msg => await OnItemValueUpdateHandler(msg)); }
internal async Task InitAsync() { _stateChangedHandler = _messageHub .Handle <ThingStateChangedMessage>() .Where(msg => msg.Id == Id.ToString()) .Synchronize() .Register(async msg => await OnStateChanged(msg)); _channelAddedHandler = _messageHub .Handle <NewThingChannelMessage>() .Where(msg => Id.Equals(msg.ThingId)) .Register(async msg => await OnChannelAdded(msg)); _messageHub.SendMessage(new ThingStateChangedMessage(Id.ToString(), ThingState.Initializing)); var state = await _thingHandler.InitAsync(); _messageHub.SendMessage(new ThingStateChangedMessage(Id.ToString(), state)); }
private void RegisterThingsInitHandler(IGateway gateway, GatewayConfigurationPackage gatewayConfigurationPackage) { var initThingsHandler = _messageHub .Handle <ThingStateChangedMessage>() .Where(msg => gateway.Id.Equals(msg.Id) && msg.NewState.IsInitialized()) .Once() .Register(msg => InitThingsAsync(gatewayConfigurationPackage)); _gatewayInitializedHandlers[gatewayConfigurationPackage] = initThingsHandler; }
public ItemBinding(string itemName, string channelId, IMessageHub messageHub) { _itemName = itemName; _channelId = channelId; _messageHub = messageHub; _channelValueChangedHandler = _messageHub .Handle <ChannelValueChangedMessage>() .Where(msg => msg.ChannelId == channelId) .Register(async msg => await OnChannelValueChanged(msg)); }
public Task SetupAsync(IMessageHub messageHub) { MessageHub = messageHub; _writeValueHandler = MessageHub .Handle <WriteChannelValueMessage>() .Where(msg => ChannelId.Equals(msg.ChannelId)) .Register(async msg => await WriteValueAsync(msg.Value)); return(Task.CompletedTask); }
public ItemChangedTrigger(IItemRepository itemRepository, IMessageHub messageHub, string itemName, object oldValue, object newValue, Func <Task> executeAsync) { _itemRepository = itemRepository; _itemName = itemName; _oldValue = oldValue; _newValue = newValue; _executeAsync = executeAsync; _itemValueChangedHandler = messageHub .Handle <ItemValueChangedMessage>() .Where(msg => msg.ItemName == itemName) .Register(OnItemValueChanged); }
internal async Task InitAsync() { _stateChangedHandler = _messageHub .Handle <ThingStateChangedMessage>() .Where(msg => msg.Id == Id.ToString() && msg.NewState != State) .Synchronize() .Register(async msg => await OnStateChanged(msg)); _messageHub.SendMessage(new ThingStateChangedMessage(Id.ToString(), ThingState.Initializing)); var state = await _gatewayHandler.InitAsync(); _messageHub.SendMessage(new ThingStateChangedMessage(Id.ToString(), state)); }