public override void HandleMessage(XmppStream stream, Message message, XmppHandlerContext context) { if (!message.HasTo) { return; } if (archiveStore.GetMessageLogging(message.From, message.To)) { if (!string.IsNullOrEmpty(message.Body) || !string.IsNullOrEmpty(message.Subject) || !string.IsNullOrEmpty(message.Thread) || message.Html != null) { var flush = false; lock (messageBuffer) { //Add xdelay if (message.XDelay == null) { message.XDelay = new Delay(); message.XDelay.Stamp = DateTime.UtcNow; } messageBuffer.Add(message); flush = BUFFER_SIZE <= messageBuffer.Count; } if (flush) { FlushMessageBuffer(); } } } }
private void CheckGetLogging(Jid from, Jid to, bool expected) { var actual = store.GetMessageLogging(from, to); Assert.AreEqual(expected, actual); actual = store.GetMessageLogging(to, from); Assert.AreEqual(expected, actual); }
public override void HandleMessage(XmppStream stream, Message message, XmppHandlerContext context) { if (!message.HasTo) { return; } if (archiveStore == null) { archiveStore = new DbMessageArchive(); var properties = new Dictionary <string, string>(1); properties.Add("connectionStringName", "core"); archiveStore.Configure(properties); } if (archiveStore.GetMessageLogging(message.From, message.To)) { if (!string.IsNullOrEmpty(message.Body) || !string.IsNullOrEmpty(message.Subject) || !string.IsNullOrEmpty(message.Thread) || message.Html != null) { var flush = false; lock (messageBuffer) { //Add xdelay if (message.XDelay == null) { message.XDelay = new Delay(); message.XDelay.Stamp = DateTime.UtcNow; } messageBuffer.Add(message); flush = BUFFER_SIZE <= messageBuffer.Count; } if (flush) { FlushMessageBuffer(); } } } }