private string DoMailMerge(string DocxTemplate, string InputFilename) { var card = new CardData(_inputs.TakeRandom(25)); var cells = card.Cells.ToDictionary(c => c.Id.ToLower(), c => c.Value); var tmpFile = GetTempFileName("docx"); var(mergeSuccess, mergeException) = _mailMerger.Merge(DocxTemplate, cells, tmpFile); if (!mergeSuccess) { throw ExitCode.MailMergeFailed(DocxTemplate, InputFilename, mergeException).ToCommandException(); } return(tmpFile); }
private IEnumerable <string> DoManyMailMerges(int count, string DocxTemplate, string InputFilename, string outputDir) { for (var i = 0; i < count; i++) { var card = new CardData(_inputs.TakeRandom(25)); var cells = card.Cells.ToDictionary(c => c.Id.ToLower(), c => c.Value); var filename = Path.Combine(outputDir, $"{i}.docx"); var(mergeSuccess, mergeException) = _mailMerger.Merge(DocxTemplate, cells, filename); if (!mergeSuccess) { throw ExitCode.MailMergeFailed(DocxTemplate, InputFilename, mergeException).ToCommandException(); } yield return(filename); } }