protected override CommandResult <CommandOutput.None> RunCore(CommandInput.None input) { var nominationList = Context.NominationListContext.NominationList; foreach (var awardType in AwardType.ValidAwardTypes) { if (!nominationList.HasNominationsForAward(awardType)) { continue; } var fileName = awardType.GetVotingGuideFileName(Context.AwardsPeriod); var filePath = Context.WorkingDirectoryPath.GetFilePathForFileInDirectory(fileName, false, false); var mailMerge = _mailMergeFactory.GetVotingGuideMailMerge(awardType, nominationList); mailMerge.Execute(filePath); } return(CommandOutput.None.Success); }
private static void AddVotingGuideAttachment(ComObjectManager com, MailItem mailItem, IMailMergeFactory mailMergeFactory, NominationList nominationList, AwardType awardType) { var attachments = com.Get(() => mailItem.Attachments); var fileName = awardType.GetVotingGuideFileName(nominationList.AwardsPeriod); var filePath = FilePath.Create(Path.Combine(Path.GetTempPath(), fileName), false); if (File.Exists(filePath.Value)) { File.Delete(filePath.Value); } var mailMerge = mailMergeFactory.GetVotingGuideMailMerge(awardType, nominationList); mailMerge.Execute(filePath); com.Get(() => attachments.Add(filePath.Value)); }
private static void AddVotingGuideAttachmentAndInstructions(ComObjectManager com, MailItem mailItem, HtmlNode content, IMailMergeFactory mailMergeFactory, NominationList nominationList, AwardType awardType, string instructions) { var attachments = com.Get(() => mailItem.Attachments); var fileName = awardType.GetVotingGuideFileName(nominationList.AwardsPeriod); var filePath = FilePath.Create(Path.Combine(Path.GetTempPath(), fileName), false); if (File.Exists(filePath.Value)) { File.Delete(filePath.Value); } var mailMerge = mailMergeFactory.GetVotingGuideMailMerge(awardType, nominationList); mailMerge.Execute(filePath); com.Get(() => attachments.Add(filePath.Value)); AppendSection(content, $@"<b><i>{awardType.PrettyName} Nominees:</i></b> {fileName} -- {instructions}"); }