Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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);
                }
            }
        }