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(); } } } }
public override void OnRegister(IServiceProvider serviceProvider) { archiveStore = ((StorageManager)serviceProvider.GetService(typeof(StorageManager))).GetStorage <DbMessageArchive>("archive"); _serviceProvider = serviceProvider; }
public DbMsgArchiveTest() { store = new DbMessageArchive(); store.Configure(GetConfiguration()); }