public XElement GetDiagnosticInfo()
        {
            XElement root = new XElement("CurrentSubmissions");

            this.map.ForEach(null, delegate(Thread thread, MailItemSubmitter mailItemSubmitter)
            {
                SubmissionInfo submissionInfo = mailItemSubmitter.SubmissionInfo;
                string mailboxHopLatency      = submissionInfo.MailboxHopLatency;
                Guid mdbGuid                = submissionInfo.MdbGuid;
                IPAddress networkAddress    = submissionInfo.NetworkAddress;
                DateTime originalCreateTime = submissionInfo.OriginalCreateTime;
                string content              = null;
                string content2             = null;
                long num     = 0L;
                byte[] array = null;
                MapiSubmissionInfo mapiSubmissionInfo = (MapiSubmissionInfo)mailItemSubmitter.SubmissionInfo;
                num      = mapiSubmissionInfo.EventCounter;
                array    = mapiSubmissionInfo.EntryId;
                content  = mailItemSubmitter.Result.MessageId;
                content2 = mailItemSubmitter.Result.Sender;
                thread.Suspend();
                StackTrace content3;
                try
                {
                    content3 = new StackTrace(thread, true);
                }
                finally
                {
                    thread.Resume();
                }
                XElement xelement = new XElement("Submission");
                xelement.Add(new object[]
                {
                    new XElement("ThreadID", thread.ManagedThreadId),
                    new XElement("ConnectionID", mailItemSubmitter.SubmissionConnectionId),
                    new XElement("Duration", (default(DateTime) == mailItemSubmitter.StartTime) ? TimeSpan.Zero : (DateTime.UtcNow - mailItemSubmitter.StartTime)),
                    new XElement("MailboxServer", submissionInfo.MailboxFqdn),
                    new XElement("MailboxServerIP", submissionInfo.NetworkAddress),
                    new XElement("MdbName", submissionInfo.DatabaseName),
                    new XElement("MdbGuid", submissionInfo.MdbGuid),
                    new XElement("OriginalCreationTime", submissionInfo.OriginalCreateTime),
                    new XElement("MessageID", content),
                    new XElement("Sender", content2),
                    new XElement("EventCounter", num),
                    new XElement("EntryID", (array == null) ? null : BitConverter.ToString(array)),
                    new XElement("Stage", mailItemSubmitter.Stage),
                    new XElement("ErrorCode", mailItemSubmitter.ErrorCode),
                    new XElement("MessageSize", mailItemSubmitter.MessageSize),
                    new XElement("RecipientCount", mailItemSubmitter.RecipientCount),
                    new XElement("RpcLatency", mailItemSubmitter.RpcLatency),
                    new XElement("StackTrace", content3),
                    LatencyFormatter.GetDiagnosticInfo(mailItemSubmitter.LatencyTracker)
                });
                root.Add(xelement);
            });
            return(root);
        }
        // Token: 0x0600005D RID: 93 RVA: 0x000049A4 File Offset: 0x00002BA4
        public XElement GetDiagnosticInfo()
        {
            XElement root = new XElement("CurrentSubmissions");

            this.map.ForEach(null, delegate(Thread thread, SubmissionsInProgress.Entry entry)
            {
                thread.Suspend();
                StackTrace content;
                try
                {
                    content = new StackTrace(thread, true);
                }
                finally
                {
                    thread.Resume();
                }
                XElement xelement = new XElement("Submission");
                xelement.Add(new object[]
                {
                    new XElement("ThreadID", thread.ManagedThreadId),
                    new XElement("Duration", (default(ExDateTime) == entry.StartTime) ? TimeSpan.Zero : (ExDateTime.UtcNow - entry.StartTime)),
                    new XElement("EventCounter", entry.EventCounter),
                    new XElement("EntryID", (entry.EntryID == null) ? null : BitConverter.ToString(entry.EntryID)),
                    new XElement("DatabaseWatermark", new object[]
                    {
                        new XElement("EventCounter", (entry.DatabaseWatermark == null) ? 0L : entry.DatabaseWatermark.EventCounter),
                        new XElement("MailboxGuid", (entry.DatabaseWatermark == null) ? Guid.Empty : entry.DatabaseWatermark.MailboxGuid)
                    }),
                    new XElement("MailboxGuid", entry.MailboxGuid),
                    new XElement("ObjectClass", entry.ObjectClass),
                    new XElement("ClientType", entry.ClientType),
                    new XElement("CreateTime", entry.CreateTime),
                    new XElement("DocumentID", entry.DocumentID),
                    new XElement("EventFlags", entry.EventFlags),
                    new XElement("EventMask", entry.EventMask),
                    new XElement("ExtendedEventFlags", entry.ExtendedEventFlags),
                    new XElement("SecurityID", entry.SecurityID),
                    new XElement("Sender", entry.Sender),
                    new XElement("MdbGuid", entry.MdbGuid),
                    new XElement("StackTrace", content),
                    (entry.LatencyTracker == null) ? null : LatencyFormatter.GetDiagnosticInfo(entry.LatencyTracker)
                });
                root.Add(xelement);
            });
            return(root);
        }
        public XElement GetDiagnosticInfo()
        {
            XElement root = new XElement("CurrentDeliveries");

            this.map.ForEach(null, delegate(ulong sessionID, MailItemDeliver mailItemDeliver)
            {
                mailItemDeliver.Thread.Suspend();
                StackTrace content;
                try
                {
                    content = new StackTrace(mailItemDeliver.Thread, true);
                }
                finally
                {
                    mailItemDeliver.Thread.Resume();
                }
                XElement xelement = new XElement("Delivery");
                xelement.Add(new object[]
                {
                    new XElement("ThreadID", mailItemDeliver.Thread.ManagedThreadId),
                    new XElement("SessionID", sessionID),
                    new XElement("CurrentRecipientDuration", (default(ExDateTime) == mailItemDeliver.RecipientStartTime) ? TimeSpan.Zero : (ExDateTime.UtcNow - mailItemDeliver.RecipientStartTime)),
                    new XElement("MessageID", mailItemDeliver.MbxTransportMailItem.InternetMessageId),
                    new XElement("Recipient", (mailItemDeliver.Recipient == null) ? null : mailItemDeliver.Recipient.Email.ToString()),
                    new XElement("MDB", mailItemDeliver.MbxTransportMailItem.DatabaseName),
                    new XElement("MailboxServer", StoreDriverDelivery.MailboxServerFqdn),
                    new XElement("MessageSize", mailItemDeliver.MbxTransportMailItem.MimeSize),
                    new XElement("RecipientCount", mailItemDeliver.MbxTransportMailItem.Recipients.Count),
                    new XElement("TMIRecipientCount", mailItemDeliver.MbxTransportMailItem.MailItemRecipientCount),
                    new XElement("Sender", mailItemDeliver.MbxTransportMailItem.MimeSender),
                    new XElement("StackTrace", content),
                    LatencyFormatter.GetDiagnosticInfo(mailItemDeliver.MbxTransportMailItem.LatencyTracker)
                });
                root.Add(xelement);
            });
            return(root);
        }