// Token: 0x06000174 RID: 372 RVA: 0x0000A754 File Offset: 0x00008954
        private static int WriteMimePartsToEmailMessage(IEnumerable mimeParts, string toAddress, string fromAddress, Guid externalOrganizationId)
        {
            int num = 0;

            if (string.IsNullOrEmpty(fromAddress))
            {
                fromAddress = "EHAJournalConfirmation@" + NativeHelpers.GetLocalComputerFqdn(false);
            }
            using (EmailMessage emailMessage = EmailMessage.Create(BodyFormat.Text))
            {
                emailMessage.Subject = DateTime.UtcNow.ToString();
                emailMessage.To.Add(new EmailRecipient(toAddress, toAddress));
                emailMessage.Sender = new EmailRecipient(fromAddress, fromAddress);
                Header header = Header.Create("X-Sender");
                header.Value = fromAddress;
                emailMessage.MimeDocument.RootPart.Headers.AppendChild(header);
                header       = Header.Create("X-Receiver");
                header.Value = toAddress;
                emailMessage.MimeDocument.RootPart.Headers.AppendChild(header);
                header       = Header.Create("X-CreatedBy");
                header.Value = "MSExchange12";
                emailMessage.MimeDocument.RootPart.Headers.AppendChild(header);
                header       = Header.Create("X-EndOfInjectedXHeaders");
                header.Value = " ";
                emailMessage.MimeDocument.RootPart.Headers.AppendChild(header);
                Header header2 = Header.Create("X-MS-Exchange-Organization-ArchiveReplication-DataType");
                header2.Value = " ";
                emailMessage.MimeDocument.RootPart.Headers.AppendChild(header2);
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    using (MetaExtractMime metaExtractMime = new MetaExtractMime(fromAddress, memoryStream))
                    {
                        metaExtractMime.SetContentDescriptionsProvider(EHALogSearchComponent.contentDescriptions);
                        foreach (object obj in mimeParts)
                        {
                            EHALogSearchComponent.ConfirmationWrapper confirmationWrapper = (EHALogSearchComponent.ConfirmationWrapper)obj;
                            try
                            {
                                if (metaExtractMime.AddBlobPart(confirmationWrapper.Confirmation, false, confirmationWrapper.EhaMessageId, confirmationWrapper.EoaMessageStatus))
                                {
                                    num++;
                                }
                            }
                            catch (XmlException ex)
                            {
                                EHALogSearchComponent.logger.LogEvent(MSExchangeTransportLogSearchEventLogConstants.Tuple_TransportSyncLogEntryProcessingFailure, DateTime.UtcNow.Hour.ToString(), new object[]
                                {
                                    ex
                                });
                                ExTraceGlobals.ServiceTracer.TraceError <string, XmlException>(0L, "Failed to add confirmation part to message body. MessageId={0}; XmlException={1}", confirmationWrapper.EhaMessageId, ex);
                            }
                        }
                        metaExtractMime.InsertLastPartEndingBoundary();
                        using (Stream contentWriteStream = emailMessage.Body.GetContentWriteStream())
                        {
                            using (StreamWriter streamWriter = new StreamWriter(contentWriteStream))
                            {
                                memoryStream.Seek(0L, SeekOrigin.Begin);
                                streamWriter.Write(new StreamReader(memoryStream).ReadToEnd());
                            }
                        }
                    }
                }
                if (!EHALogSearchComponent.SubmitMessage(emailMessage, toAddress, fromAddress, externalOrganizationId))
                {
                    num = 0;
                }
            }
            return(num);
        }
        // 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);
            }
        }