private static string BuildDiagnosticString(ActivityId id, ClientId clientId, ExDateTime timeStamp, Guid clientSessionId, string clientVersion, long sequenceNumber, IMailboxSession mailboxSession, StoreObjectId itemId = null, StoreObjectId previousItemId = null, IDictionary <string, string> customProperties = null) { string text = string.Empty; if (mailboxSession != null && mailboxSession.MailboxOwner != null) { text = mailboxSession.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString(); } return(string.Format("id:{0}, clientId:{1}, timeStamp:{2}, clientSessionId:{3}, clientVersion:{4}, sequenceNumber:{5}, owner:{6}, itemId:{7}, previousItemId:{8}, customProperties:{9}", new object[] { id, (clientId == null) ? string.Empty : clientId.ToString(), timeStamp.ToISOString(), clientSessionId, clientVersion, sequenceNumber, text, (itemId == null) ? string.Empty : itemId.ToBase64ProviderLevelItemId(), (previousItemId == null) ? string.Empty : previousItemId.ToBase64ProviderLevelItemId(), (customProperties == null) ? string.Empty : Activity.SerializeDictionaryAsString(customProperties) })); }