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 BuildBodyHeaderText(LessonsLearnedType type, string title, string comments = "") { switch (type) { case LessonsLearnedType.Review: _Body += "<p><span style='font-weight:bold'>" + title + "</span> is being submitted for your approval, please review and click the link at the bottom to approve or reject</p>"; break; case LessonsLearnedType.Approved: _Body += "<p><span style='font-weight:bold'>" + title + "</span> has been approved by OB Review. Please look below for any comments</p>" + "<table><tr><td><h3>Comments:</h3></td><td><p>" + Shared.ProcessStringHTML(comments) + "</p></td></tr></table><hr>"; break; case LessonsLearnedType.Rejected: _Body += "<p><span style='font-weight:bold'>" + title + "</span> has been rejected by OB Review. Please look below for any comments</p>" + "<table><tr><td><h3>Comments:</h3></td><td><p>" + Shared.ProcessStringHTML(comments) + "</p></td></tr></table><hr>"; break; case LessonsLearnedType.Published: _Body += "<p>This item <span style='font-weight:bold'>" + title + "</span> has been published by OB Review</p>"; break; } }
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; } } }