internal void PublishItemUpdate(Item item) { var messageData = new TreeUpdateChannelMessageData(_thisSender, item); string messageDataString = _channelMessageSerializer.SerializeString(messageData); _subscriber.PublishAsync(DatabaseSchema.TreeUpdateChannel, messageDataString); }
private readonly ISerializer <TreeUpdateChannelMessageData> _channelMessageSerializer; //TODO: replace with something faster than Json? private void ProcessItemUpdate(ChannelMessage message) { TreeUpdateChannelMessageData messageData = _channelMessageSerializer.DeserializeString(message.Message); if (messageData.Sender != _thisSender) { Item item = _tree.GetOrAddItem(messageData.Path); item.DataAsString = messageData.Data; item.NotifySubscribers(); } }