public LessonsLearnedEmail(LessonsLearnedType type, LessonsLearnedItem item, string comments = "") { _Bcc = new MailAddressCollection(); _To = new MailAddressCollection(); _Attachments = new System.Collections.Generic.List <Attachment>(); InitializeBodyWithHead(); BuildBodyHeaderText(type, item.Title, comments); BuildSharedBodyText(item); }
private void BuildSharedBodyText(LessonsLearnedItem item) { _Body += "<div class='content'>" + "<table class='mainTable'>" + "<tr>" + "<th colspan='2'>" + "<h1>" + "Lessons Learned" + "</h1>" + "</th>" + "</tr>" + "<tr>" + "<td>" + "<h3>Title</h3>" + "</td>" + "<td>" + "<p>" + item.Title + "</p>" + "</td>" + "</tr>" + "<tr>" + "<td>" + "<h3>Project</h3>" + "</td>" + "<td>" + "<p>" + item.Project + "</p>" + "</td>" + "</tr>" + "<tr>" + "<td>" + "<h3>Lesson Type</h3>" + "</td>" + "<td>" + "<p>" + item.LessonType + "</p>" + "</td>" + "</tr>" + "<tr>" + "<td>" + "<h3>Date</h3>" + "</td>" + "<td>" + "<p>" + item.Date + "</p>" + "</td>" + "</tr>" + "<tr>" + "<td>" + "<h3>Keyword(s)</h3>" + "</td>" + "<td>" + "<p>" + item.Keywords + "</p>" + "</td>" + "</tr>" + "<tr>" + "<td>" + "<h3>Issue</h3>" + "</td>" + "<td>" + "<p>" + item.Issue + "</p>" + "</td>" + "</tr>" + "<tr>" + "<td>" + "<h3>Resolution</h3>" + "</td>" + "<td>" + "<p>" + item.Resolution + "</p>" + "</td>" + "</tr>" + "<tr>" + "<td>" + "<h3>Innovator</h3>" + "</td>" + "<td>" + "<p>" + item.Innovator + "</p>" + "</td>" + "</tr>" + "<tr>" + "<td>" + "<h3>Attachment(s)</h3>" + "</td>" + "<td>" + "<p>" + Shared.ProcessStringHTML(item.attachmentOthersHTML) + "</p>" + "</td>" + "</tr>" + "<tr>" + "<td colspan='2' style='text-align:center'>" + "<a href='" + item.clickToLink + "' target='_blank'>" + item.clickToText + "</a> " + "</td>" + "</tr>" + "</table>" + "<h2>Images</h2>" + Shared.ProcessStringHTML(item.attachmentImagesHTML) + "</div><p><i>This is an auto-generated email, please do not reply</i></p></body></html>"; }
public SharePointLessonsLearnedEmail(ListItem oListItem, string fromAddress, string[] publishAddresses, string[] reviewerAddresses) { ClientContext ctx = (ClientContext)oListItem.Context; LessonsLearnedType type = LessonsLearnedType.Published; string clickToLink = ""; string clickToText = ""; string subject = ""; string comments = ""; // build subject and links as appropriate for message //Get parent list for link to pages List parentList = oListItem.ParentList; ctx.Load(parentList, l => l.DefaultDisplayFormUrl, l => l.DefaultEditFormUrl); ctx.ExecuteQuery(); switch (Lists.GetApprovalStatusField(oListItem)) { case "Pending": type = LessonsLearnedType.Review; subject = "Lessons Learned - Item for Review"; clickToLink = oListItem.Context.Url + formPath + "approve.aspx?List={" + parentList.Id.ToString() + "}&ID=" + oListItem.Id.ToString(); clickToText = "Click here to approve / reject this item"; break; case "Approved": type = LessonsLearnedType.Approved; subject = "Lessons Learned - Item Approved"; comments = Lists.GetStringField(oListItem, "_ModerationComments"); clickToLink = oListItem.Context.Url + libraryName + "DispForm.aspx?ID=" + oListItem.Id.ToString(); clickToText = "Click here to view your item"; break; case "Rejected": type = LessonsLearnedType.Rejected; subject = "Lessons Learned - Item Rejected"; comments = Lists.GetStringField(oListItem, "_ModerationComments"); clickToLink = oListItem.Context.Url + libraryName + "EditForm.aspx?ID=" + oListItem.Id.ToString(); clickToText = "Click here to edit your item"; break; case "Published": type = LessonsLearnedType.Published; subject = "Lessons Learned"; clickToLink = oListItem.Context.Url + libraryName + "DispForm.aspx?ID=" + oListItem.Id.ToString(); clickToText = "Click here to view this item"; break; } //process E-mail attachments AddAttachments(oListItem); LessonsLearnedItem item = new LessonsLearnedItem(); item.Title = oListItem["Title"].ToString(); item.Project = Lists.GetLookupFieldSingle(oListItem, LessonsLearnedLists.PROJECTFIELDNAME); item.LessonType = Lists.GetStringField(oListItem, LessonsLearnedLists.LESSONTYPEFIELDNAME); item.Date = Lists.GetDateField(oListItem, LessonsLearnedLists.DATEFIELDNAME); item.Keywords = Lists.GetLookupFieldMulti(oListItem, LessonsLearnedLists.KEYWORDSFIELDNAME); item.Issue = Lists.GetStringField(oListItem, LessonsLearnedLists.ISSUEFIELDNAME); item.Resolution = Lists.GetStringField(oListItem, LessonsLearnedLists.RESOLUTIONFIELDNAME); item.Innovator = Lists.GetStringField(oListItem, LessonsLearnedLists.INNOVATORFIELDNAME); item.clickToLink = clickToLink; item.clickToText = clickToText; item.attachmentImagesHTML = attachmentImagesHTML; item.attachmentOthersHTML = attachmentOthersHTML; email = new LessonsLearnedEmail(type, item, comments); // add attachments foreach (System.Net.Mail.Attachment a in Attachments) { email.Attachment = a; } // fill in Subject, To, From email.Subject = subject; email.From = fromAddress; switch (type) { case LessonsLearnedType.Review: { foreach (string reviewerAddress in reviewerAddresses) { email.To = reviewerAddress; } break; } case LessonsLearnedType.Published: { foreach (string publishAddress in publishAddresses) { email.Bcc = publishAddress; } email.To = Lists.GetCreatorEmail(oListItem, ctx); break; } case LessonsLearnedType.Approved: case LessonsLearnedType.Rejected: { email.To = Lists.GetCreatorEmail(oListItem, ctx); break; } } }