private void Callback(FileSystemEventArgs e) { if (_callback == null) { return; } var filename = e.Name; var parsed = _topicGen.Parse(filename); var from = parsed["from"]; var msg = File.ReadAllText(e.FullPath); _callback(new MessageInfo { From = from, To = parsed["to"], RecivedAt = DateTime.ParseExact(parsed["timestamp"], "yyyyMMddHHmmssfff", null), Message = msg }); if (_ack) { var topic = _topicGen.Generate(from); if (!Directory.Exists(_baseDir)) { Directory.CreateDirectory(_baseDir); } using (var file = new StreamWriter(Path.Combine(_baseDir, topic))) { file.WriteLine("[Acknoledged] {0} {1}", DateTime.Now, _recId); } } }
public void Notify(string target, Action <MessageInfo> callback = null, string body = null) { var topic = _topicGen.Generate(target); var ackPattern = _topicGen.GenerateReceiveTopicPattern(); if (callback != null) { _callbacks[target] = callback; } if (!Directory.Exists(_baseDir)) { Directory.CreateDirectory(_baseDir); } using (var file = new StreamWriter(Path.Combine(_baseDir, topic))) { if (!string.IsNullOrEmpty(body)) { file.Write(body); } } }