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);
            }
        }