/// <summary> /// Get all messages for the provider with the given name. /// </summary> /// <param name="providerName">The name of the provider</param> /// <returns>All messages in this store for the given provdider</returns> public IList <IMessage> GetMessages(string providerName) { MessageProviderFactory factory = MessageProviderFactory.Instance; using (MessageDataContext context = new MessageDataContext(connectionString)) { IQueryable <StoredMessage> query = from msg in context.Messages where !msg.IsDeleted select msg; return(MakeMessages(query.ToList <StoredMessage>())); } }
private void OnMessagesExpired(IList <string> expiredIds) { MessageProviderFactory factory = MessageProviderFactory.Instance; foreach (string expiredId in expiredIds) { IMessage message = GetMessage(expiredId); if (message != null) { MessageProvider provider = factory.GetProvider(message.Provider); if (provider != null) { provider.OnMessageExpired(this, message); } } } }
/// <summary> /// Send all pending messages. /// </summary> public void SendAllMessages() { MessageProviderFactory factory = MessageProviderFactory.Instance; using (MessageDataContext context = new MessageDataContext(connectionString)) { IQueryable <StoredMessage> query = from msg in context.Messages where !msg.IsDeleted select msg; IList <IMessage> messages = MakeMessages(query.ToList <StoredMessage>()); foreach (IMessage message in messages) { MessageProvider provider = factory.GetProvider(message.Provider); if (provider != null) { provider.Send(message); } } } }