private void ProcessInboxInternal()

in Mail2Bug/Mail2BugEngine.cs [57:92]


		private void ProcessInboxInternal()
		{
			Logger.DebugFormat("Reading messages from inbox ({0})", _config.EmailSettings.IncomingFolder);

            // Retreive the messages from the relevant mail folder
			var inboxItemsList = _mailboxManager.ReadMessages().ToList();

            if (inboxItemsList.Count == 0)
            {
                Logger.DebugFormat("No messages found for instance {0}", _config.Name);
                return;
            }

            Logger.InfoFormat("Found {0} messages for Instance {1}. Processing...", inboxItemsList.Count, _config.Name);

            foreach (var message in inboxItemsList)
            {
                var messageProcessedSuccessfully = true;
			    try
			    {
			        Logger.InfoFormat("Processing message {0}", message.Subject);
			        Logger.DebugFormat("Message sent on {0}", message.SentOn.ToLocalTime());
			        _messageProcessingStrategy.Value.ProcessInboxMessage(message);
			        Logger.InfoFormat("Message '{0}' processed successfully, moving to next message", message.Subject);
			    }
			    catch (Exception exception)
			    {
			        messageProcessedSuccessfully = false;
			        Logger.Error("Error processing message", exception);
			    }
			    finally
			    {
			        _mailboxManager.OnProcessingFinished(message, messageProcessedSuccessfully);
			    }
			}
		}