internal static string CreateHtmlReplyForwardHeader(Item item, ForwardReplyHeaderOptions headerOptions, string fromLabel, string from, string sender, string toLabel, string ccLabel, IList <IRecipientBase> toRecipients, IList <IRecipientBase> ccRecipients, bool isMeetingItem, CultureInfo culture, ExTimeZone timeZone) { StringBuilder stringBuilder = new StringBuilder(150); using (StringWriter stringWriter = new StringWriter(stringBuilder, culture)) { ReplyForwardHeader.RenderDefaultUserFontMarkup(headerOptions, stringWriter); } stringBuilder.Append("<HR style=\"display:inline-block;width:98%\" tabindex=\"-1\">"); stringBuilder.Append("<FONT FACE=\"Tahoma\" size=\"2\">"); bool flag = !string.IsNullOrEmpty(from); bool flag2 = !string.IsNullOrEmpty(sender); if (flag2 || flag) { stringBuilder.Append("<B>"); stringBuilder.Append(fromLabel); stringBuilder.Append("</B> "); if (flag2 && string.Compare(sender, from, StringComparison.Ordinal) != 0) { ReplyForwardHeader.HtmlEncode(sender, stringBuilder); if (flag) { stringBuilder.Append(string.Format(culture, ClientStrings.OnBehalfOf.ToString(culture), new object[] { string.Empty, string.Empty })); } } if (flag) { ReplyForwardHeader.HtmlEncode(from, stringBuilder); } stringBuilder.Append("<BR>"); } object obj = item.TryGetProperty(ItemSchema.SentTime); if (obj != null && obj is ExDateTime) { stringBuilder.Append("<B>"); stringBuilder.Append(ClientStrings.SentColon.ToString(culture)); stringBuilder.Append("</B> "); ExDateTime exDateTime = (ExDateTime)obj; if (timeZone != null) { exDateTime = timeZone.ConvertDateTime(exDateTime); stringBuilder.AppendFormat(ClientStrings.SentTime.ToString(culture), exDateTime.ToString("D", culture), exDateTime.ToString("T", culture), timeZone.LocalizableDisplayName.ToString(culture)); } else { stringBuilder.AppendFormat(ClientStrings.SentTime.ToString(culture), exDateTime.ToString("D", culture), exDateTime.ToString("T", culture), exDateTime.TimeZone.LocalizableDisplayName.ToString(culture)); } stringBuilder.Append("<BR>"); } if (0 < toRecipients.Count) { stringBuilder.Append("<B>"); stringBuilder.Append(toLabel); stringBuilder.Append("</B> "); int num = 0; foreach (IRecipientBase recipientBase in toRecipients) { num++; ReplyForwardHeader.HtmlEncode(recipientBase.Participant.DisplayName, stringBuilder); if (num < toRecipients.Count) { stringBuilder.Append("; "); } } stringBuilder.Append("<BR>"); } if (0 < ccRecipients.Count) { stringBuilder.Append("<B>"); stringBuilder.Append(ccLabel); stringBuilder.Append("</B> "); int num2 = 0; foreach (IRecipientBase recipientBase2 in ccRecipients) { num2++; ReplyForwardHeader.HtmlEncode(recipientBase2.Participant.DisplayName, stringBuilder); if (num2 < ccRecipients.Count) { stringBuilder.Append("; "); } } stringBuilder.Append("<BR>"); } stringBuilder.Append("<B>"); stringBuilder.Append(ClientStrings.SubjectColon.ToString(culture)); stringBuilder.Append("</B> "); string text = item.TryGetProperty(ItemSchema.Subject) as string; if (text == null) { text = string.Empty; } ReplyForwardHeader.HtmlEncode(text, stringBuilder); stringBuilder.Append("<BR>"); if (isMeetingItem) { stringBuilder.Append("<B>"); stringBuilder.Append(ClientStrings.WhenPart.ToString(culture)); stringBuilder.Append("</B> "); ReplyForwardHeader.HtmlEncode(ReplyForwardHeader.GenerateWhen(item), stringBuilder); stringBuilder.Append("<BR><B>"); stringBuilder.Append(ClientStrings.WherePart.ToString(culture)); stringBuilder.Append("</B> "); string text2 = item.TryGetProperty(CalendarItemBaseSchema.Location) as string; if (!string.IsNullOrEmpty(text2)) { ReplyForwardHeader.HtmlEncode(text2, stringBuilder); } stringBuilder.Append("<BR>"); } stringBuilder.Append("</FONT><BR></DIV>"); return(stringBuilder.ToString()); }
internal static string CreateTextReplyForwardHeader(Item item, ForwardReplyHeaderOptions headerOptions, string fromLabel, string from, string sender, string toLabel, string ccLabel, IList <IRecipientBase> toRecipients, IList <IRecipientBase> ccRecipients, bool isMeetingItem, CultureInfo culture, ExTimeZone timeZone) { StringBuilder stringBuilder = new StringBuilder(100); stringBuilder.Append("\n\n"); if (headerOptions.AutoAddSignature) { stringBuilder.Append("\n\n"); stringBuilder.Append(headerOptions.SignatureText); } stringBuilder.Append("\n________________________________________\n"); bool flag = !string.IsNullOrEmpty(from); bool flag2 = !string.IsNullOrEmpty(sender); if (flag2 || flag) { stringBuilder.Append(fromLabel); stringBuilder.Append(" "); if (flag2 && string.Compare(sender, from, StringComparison.Ordinal) != 0) { stringBuilder.Append(sender); if (flag) { stringBuilder.Append(string.Format(culture, ClientStrings.OnBehalfOf.ToString(culture), new object[] { string.Empty, string.Empty })); } } if (flag) { stringBuilder.Append(from); } stringBuilder.Append("\n"); } object obj = item.TryGetProperty(ItemSchema.SentTime); if (obj != null && obj is ExDateTime) { stringBuilder.Append(ClientStrings.SentColon.ToString(culture)); stringBuilder.Append(" "); ExDateTime exDateTime = (ExDateTime)obj; if (timeZone != null) { exDateTime = timeZone.ConvertDateTime(exDateTime); stringBuilder.AppendFormat(ClientStrings.SentTime.ToString(culture), exDateTime.ToString("D", culture), exDateTime.ToString("T", culture), timeZone.LocalizableDisplayName.ToString(culture)); } else { stringBuilder.AppendFormat(ClientStrings.SentTime.ToString(culture), exDateTime.ToString("D", culture), exDateTime.ToString("T", culture), exDateTime.TimeZone.LocalizableDisplayName.ToString(culture)); } stringBuilder.Append("\n"); } if (0 < toRecipients.Count) { stringBuilder.Append(toLabel); stringBuilder.Append(" "); int num = 0; foreach (IRecipientBase recipientBase in toRecipients) { num++; stringBuilder.Append(recipientBase.Participant.DisplayName); if (num < toRecipients.Count) { stringBuilder.Append("; "); } } stringBuilder.Append("\n"); } if (0 < ccRecipients.Count) { stringBuilder.Append(ccLabel); stringBuilder.Append(" "); int num2 = 0; foreach (IRecipientBase recipientBase2 in ccRecipients) { num2++; stringBuilder.Append(recipientBase2.Participant.DisplayName); if (num2 < ccRecipients.Count) { stringBuilder.Append("; "); } } stringBuilder.Append("\n"); } stringBuilder.Append(ClientStrings.SubjectColon.ToString(culture)); stringBuilder.Append(" "); string text = item.TryGetProperty(ItemSchema.Subject) as string; if (text == null) { text = string.Empty; } stringBuilder.Append(text); stringBuilder.Append("\n"); if (isMeetingItem) { stringBuilder.Append(ClientStrings.WhenPart.ToString(culture)); stringBuilder.Append(" "); ReplyForwardHeader.HtmlEncode(ReplyForwardHeader.GenerateWhen(item), stringBuilder); stringBuilder.Append("\n"); stringBuilder.Append(ClientStrings.WherePart.ToString(culture)); stringBuilder.Append(" "); string text2 = item.TryGetProperty(CalendarItemBaseSchema.Location) as string; if (!string.IsNullOrEmpty(text2)) { ReplyForwardHeader.HtmlEncode(text2, stringBuilder); } stringBuilder.Append("\n"); } return(stringBuilder.ToString()); }