// Token: 0x06000171 RID: 369 RVA: 0x0000A2B0 File Offset: 0x000084B0
        private static void AddMessageCheckSend(string senderAddress, string recipientAddress, string messageId, Guid externalOrganizationId, uint batchSize, uint timeoutSeconds, Microsoft.Exchange.HostedServices.Archive.MetaReplication.ReplicationStatus status)
        {
            EHALogSearchComponent.JournalMessageSource journalMessageSource;
            if (!EHALogSearchComponent.journalMigrationJobs.TryGetValue(senderAddress, out journalMessageSource))
            {
                journalMessageSource = new EHALogSearchComponent.JournalMessageSource(recipientAddress, batchSize, timeoutSeconds, DateTime.UtcNow);
                EHALogSearchComponent.journalMigrationJobs.Add(senderAddress, journalMessageSource);
            }
            else
            {
                if (string.Compare(journalMessageSource.ReplyFromAddress, recipientAddress, StringComparison.OrdinalIgnoreCase) != 0)
                {
                    journalMessageSource.ReplyFromAddress = recipientAddress;
                }
                if (journalMessageSource.MaxResponses != batchSize)
                {
                    journalMessageSource.MaxResponses = batchSize;
                }
                if (journalMessageSource.ResponseTimeout != timeoutSeconds)
                {
                    journalMessageSource.ResponseTimeout = timeoutSeconds;
                }
                if (journalMessageSource.ExternalOrganizationId != externalOrganizationId)
                {
                    journalMessageSource.ExternalOrganizationId = externalOrganizationId;
                }
            }
            if (!journalMessageSource.ReceivedMessageIds.ContainsKey(messageId))
            {
                MessageInsertedKey messageInsertedKey = new MessageInsertedKey();
                byte[]             array = (from b in messageId.Split(new char[]
                {
                    '-'
                })
                                            select byte.Parse(b, NumberStyles.HexNumber)).ToArray <byte>();
                messageInsertedKey.MessageId = array;
                EHALogSearchComponent.ConfirmationWrapper value = new EHALogSearchComponent.ConfirmationWrapper(new MessageInsertedConfirmation
                {
                    Key            = messageInsertedKey,
                    CustomerId     = ((((int)array[0] << 8 | (int)array[1]) << 8 | (int)array[2]) << 8 | (int)array[3]),
                    Status         = status,
                    DatacenterName = "EOA"
                }, messageId, status.ToString());
                journalMessageSource.ReceivedMessageIds.Add(messageId, value);
            }
            Hashtable hashtable = null;

            lock (EHALogSearchComponent.agentLogMonitor)
            {
                if ((long)journalMessageSource.ReceivedMessageIds.Count >= (long)((ulong)journalMessageSource.MaxResponses))
                {
                    hashtable = journalMessageSource.ReceivedMessageIds;
                    journalMessageSource.ReceivedMessageIds = new Hashtable();
                    journalMessageSource.BatchStartTime     = DateTime.UtcNow;
                }
            }
            if (hashtable != null)
            {
                EHALogSearchComponent.PrepareEmailMessage(senderAddress, recipientAddress, externalOrganizationId, hashtable);
            }
        }
 // Token: 0x0600016F RID: 367 RVA: 0x00009F88 File Offset: 0x00008188
 private static void ProcessRow(object sender, ProcessRowEventArgs args)
 {
     if (EHALogSearchComponent.agentLogMonitorStarted)
     {
         LogFileInfo logFileInfo = sender as LogFileInfo;
         if (logFileInfo != null)
         {
             try
             {
                 string field         = args.Row.GetField <string>(EHALogSearchComponent.journalResponseColumnIndex);
                 string strB          = EHALogSearchComponent.RegexMatch(EHALogSearchComponent.JournalStatusParser.RxSTATUS, field).ToLower();
                 string senderAddress = EHALogSearchComponent.RegexMatch(EHALogSearchComponent.JournalStatusParser.RxSND, field);
                 if (string.Compare(EHALogSearchComponent.Configuration.UnwrapProcessSuccess, strB, StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(EHALogSearchComponent.Configuration.NDRProcessSuccess, strB, StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(EHALogSearchComponent.Configuration.AlreadyProcessed, strB, StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(EHALogSearchComponent.Configuration.PermanentError, strB, StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(EHALogSearchComponent.Configuration.NoUsersResolved, strB, StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(EHALogSearchComponent.Configuration.DropJournalReportWithoutNdr, strB, StringComparison.OrdinalIgnoreCase) == 0)
                 {
                     uint   num              = EHALogSearchComponent.Convert(EHALogSearchComponent.RegexMatch(EHALogSearchComponent.JournalStatusParser.RxRBS, field));
                     uint   num2             = EHALogSearchComponent.Convert(EHALogSearchComponent.RegexMatch(EHALogSearchComponent.JournalStatusParser.RxRTO, field));
                     string text             = EHALogSearchComponent.RegexMatch(EHALogSearchComponent.JournalStatusParser.RxRID, field);
                     string recipientAddress = EHALogSearchComponent.RegexMatch(EHALogSearchComponent.JournalStatusParser.RxRCP, field);
                     string text2            = EHALogSearchComponent.RegexMatch(EHALogSearchComponent.JournalStatusParser.RxExtOrgId, field);
                     Guid   empty            = Guid.Empty;
                     if (!Guid.TryParse(text2, out empty))
                     {
                         throw new FormatException(string.Format(CultureInfo.InvariantCulture, "The value '{0}' of ExtOrgId segment is not in a recognized Guid format", new object[]
                         {
                             text2
                         }));
                     }
                     if (empty == Guid.Empty)
                     {
                         throw new FormatException(string.Format(CultureInfo.InvariantCulture, "The value '{0}' of ExtOrgId segment is Empty and it cannot be used for tenant attribution.", new object[]
                         {
                             text2
                         }));
                     }
                     Microsoft.Exchange.HostedServices.Archive.MetaReplication.ReplicationStatus defectiveStatus = EHALogSearchComponent.GetDefectiveStatus(field);
                     if (0 < text.Length && 0U < num && 0U < num2)
                     {
                         EHALogSearchComponent.AddMessageCheckSend(senderAddress, recipientAddress, text, empty, num, num2, defectiveStatus);
                     }
                 }
             }
             catch (FormatException ex)
             {
                 EHALogSearchComponent.logger.LogEvent(MSExchangeTransportLogSearchEventLogConstants.Tuple_TransportSyncLogEntryProcessingFailure, DateTime.UtcNow.Hour.ToString(), new object[]
                 {
                     ex
                 });
             }
             catch (ArgumentException ex2)
             {
                 EHALogSearchComponent.logger.LogEvent(MSExchangeTransportLogSearchEventLogConstants.Tuple_TransportSyncLogEntryProcessingFailure, DateTime.UtcNow.Hour.ToString(), new object[]
                 {
                     ex2
                 });
             }
             catch (NullReferenceException ex3)
             {
                 EHALogSearchComponent.logger.LogEvent(MSExchangeTransportLogSearchEventLogConstants.Tuple_TransportSyncLogEntryProcessingFailure, DateTime.UtcNow.Hour.ToString(), new object[]
                 {
                     ex3
                 });
             }
         }
     }
 }