public void ProcessInbox()

in Mail2Bug/Email/EWS/RecipientsMailboxManagerRouter.cs [45:86]


        public void ProcessInbox()
        {
            Logger.InfoFormat("Processing inbox for RecipientsMailboxManagerRouter");

            if (_clients.Count == 0)
            {
                Logger.Info("No clients registered for RecipientsMailboxManagerRouter - returning");
                return;
            }

            var messages = _folder.GetMessages();

            foreach (var clientData in _clients)
            {
                clientData.Value.Messages.Clear();
            }

            messages
                .OrderBy(message => message.ReceivedOn)
                .ToList()
                .ForEach(
                    message =>
                    {
                        foreach (var clientData in _clients)
                        {
                            if (clientData.Value.Evaluator(message))
                            {
                                Logger.InfoFormat(
                                    "Adding message to client queue: Client ID {0}; subject: {1}", 
                                    clientData.Key, 
                                    message.Subject);

                                clientData.Value.Messages.Add(message);
                                return;
                            }
                        }

                        Logger.InfoFormat("Message doesn't fit to any client. Subject: {0}", message.Subject);
                    });

            Logger.InfoFormat("Finished processing inbox for RecipientsMailboxManagerRouter");
        }