Skip to content

Instantly share code, notes, and snippets.

View bjoerntx's full-sized avatar
👨‍💻
Building web apps

Bjoern Meyer bjoerntx

👨‍💻
Building web apps
View GitHub Profile
public class MergeBody
{
public string MergeData { get; set; }
public string Template { get; set; }
public MergeSettings MergeSettings { get; set; }
}
public class DocumentSettings
public static class MailMergeMapper
{
public static MailMerge ToMailMerge(MergeBody body, TXTextControl.ServerTextControl tx)
{
return new MailMerge
{
TextComponent = tx,
DataSourceCulture = new CultureInfo(body.MergeSettings.DataSourceCulture),
FormFieldMergeType = (FormFieldMergeType)body.MergeSettings.FormFieldMergeType,
MergeCulture = new CultureInfo(body.MergeSettings.MergeCulture),
{
"mergeData":"{\"FirstName\":\"John\",\"LastName\":\"Doe\"}",
"template":"CAcBAA4AAAAAAAAAAAAXAAIAqwBGAGkAcgBzAHQATgBhAG0AZQC7AHQAZQB4AHQAQwBvAG4AdAByAG8AbAAxAAAANgIAAAMAAQABAAEAAAAAAAAAAgCfhwEAAQALAAAAAAAAQAEAkgcAAABQAQAMAAAAAAAAAABAAAAAAAAAAFABAAwADAAAAAAAAEAAAAAAAAAAUDj/AAAAAAAAkAEAAAAAAAACIkFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABABgAAAAAAAAAAAAAAAAAZAAgAg8AAAABbgQB3AgBSg0BuBEBJhYBlBoBAh8BcCMB3icBTCwBujABKDUBljkBBD4BAAAAAAAAAAAAFAAAAEYAaQByAHMAdABOAGEAbQBlAAAAAQAHAAAAAAAAACwAAABNAEUAUgBHAEUARgBJAEUATABEAAAARgBpAHIAcwB0AE4AYQBtAGUAAAAAAAAAAAAAAAAAAAAAAAAAAABBAHIAaQBhAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQEAAABAAEACQYAAQAAAC4AAP//AAAAALcAAQAAAABAAAAAUAEAAgAJBAAAAAA8AABkAAAAAAEAAAAJBAAAAAAAAABkAAAAAAEAAAAJBAAAAAAAAABkAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAEAAQABABgAAAAAAAAAAAAAAAAAAAAAAAEAUwB5AG0AYgBvAGwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQBAAAwAAQA0C8AAOA9AACgBaAFoAWgBQAAAEAAAAAAAAAAAAEAAAABAA4AAAAAAAAAAAAkAQAAAQAAAAAAOP8AAAA
{
"mergeData":"{\"FirstName\":\"John\",\"LastName\":\"Doe\"}",
"template":"CAcBAA4AAAAAAAAAAAAXAAIAqwBGAGkAcgBzAHQATgBhAG0AZQC7AHQAZQB4AHQAQwBvAG4AdAByAG8AbAAxAAAANgIAAAMAAQABAAEAAAAAAAAAAgCfhwEAAQALAAAAAAAAQAEAkgcAAABQAQAMAAAAAAAAAABAAAAAAAAAAFABAAwADAAAAAAAAEAAAAAAAAAAUDj/AAAAAAAAkAEAAAAAAAACIkFyaWFsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABABgAAAAAAAAAAAAAAAAAZAAgAg8AAAABbgQB3AgBSg0BuBEBJhYBlBoBAh8BcCMB3icBTCwBujABKDUBljkBBD4BAAAAAAAAAAAAFAAAAEYAaQByAHMAdABOAGEAbQBlAAAAAQAHAAAAAAAAACwAAABNAEUAUgBHAEUARgBJAEUATABEAAAARgBpAHIAcwB0AE4AYQBtAGUAAAAAAAAAAAAAAAAAAAAAAAAAAABBAHIAaQBhAGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQEAAABAAEACQYAAQAAAC4AAP//AAAAALcAAQAAAABAAAAAUAEAAgAJBAAAAAA8AABkAAAAAAEAAAAJBAAAAAAAAABkAAAAAAEAAAAJBAAAAAAAAABkAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAEAAQABABgAAAAAAAAAAAAAAAAAAAAAAAEAUwB5AG0AYgBvAGwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQBAAAwAAQA0C8AAOA9AACgBaAFoAWgBQAAAEAAAAAAAAAAAAEAAAABAA4AAAAAAAAAAAAkAQAAAQAAAAAAOP8AAAA
[ApiController]
[Route("[controller]")]
public class DocumentController : ControllerBase
{
private readonly IDocumentMergeService _documentMergeService;
public DocumentController(IDocumentMergeService documentMergeService)
{
_documentMergeService = documentMergeService;
}
public interface IDocumentMergeService
{
string MergeDocument(MergeBody mergeBody);
}
public class DocumentMergeService : IDocumentMergeService
{
public string MergeDocument(MergeBody mergeBody)
{
using var tx = new ServerTextControl();
tx.Create();
tx.Load(Convert.FromBase64String(mergeBody.Template), BinaryStreamType.InternalUnicodeFormat);
var mailMerge = MailMergeMapper.ToMailMerge(mergeBody, tx);
public static class MailMergeMapper
{
public static MailMerge ToMailMerge(MergeBody body, TXTextControl.ServerTextControl tx)
{
return new MailMerge
{
TextComponent = tx,
DataSourceCulture = new CultureInfo(body.MergeSettings.DataSourceCulture),
FormFieldMergeType = (FormFieldMergeType)body.MergeSettings.FormFieldMergeType,
MergeCulture = new CultureInfo(body.MergeSettings.MergeCulture),
public class MergeBody
{
public string MergeData { get; set; }
public string Template { get; set; }
public MergeSettings MergeSettings { get; set; }
}
public class DocumentSettings
using System.Globalization;
using TXTextControl.DocumentProcessing.Models;
using TXTextControl.DocumentServer;
namespace tx_web_api_core.Utilities
{
public static class MailMergeMapper
{
public static MailMerge ToMailMerge(MergeBody body, TXTextControl.ServerTextControl tx)
{