/// <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);
                    }
                }
            }
        }
 internal MessageHistoryReceiver(MessageProvider provider, Logger logger)
 {
     this.provider = provider;
     this.logger   = logger;
 }
 internal MessageSender(MessageProvider provider, Logger logger, IMessage message)
 {
     this.provider = provider;
     this.logger   = logger;
     this.message  = message;
 }
 /// <summary>
 /// Adds a provider to the factory.
 /// </summary>
 /// <param name="provider">The factory to add</param>
 public void AddProvider(MessageProvider provider)
 {
     providers[provider.Name] = provider;
 }
 internal MessageReceiver(MessageProvider provider, Logger logger, string channel)
 {
     this.provider = provider;
     this.logger   = logger;
     this.channel  = channel;
 }