// 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 }); } } } }