public Stream CreateDocument(Stream templateBytes, Stream mappingBytes, DocumentPayload payload)
        {
            var         templateFields = OpenXmlWordProcessing.FindTemplateFields(templateBytes);
            MappingInfo mappingInfo;

            if (mappingBytes != null)
            {
                mappingInfo = OpenXmlSpreadsheet.GetMappingInfo(mappingBytes, payload.Sources);
            }
            else
            {
                mappingInfo = OpenXmlSpreadsheet.BuildIdentityExpressions(templateFields, payload.Sources);
            }
            var results            = CreateDocumentInternal(templateFields, mappingInfo.Expressions, mappingInfo.Sources);
            var contentControlData = BuildContentControlData(templateFields, results);

            return(OpenXmlWordProcessing.MergeTemplateWithMappings(contentControlData, templateBytes));
        }