DigiOffice Gateway Web Services

<back to all web services

GenerateDocumentBatch

Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.

Requires Authentication
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using IDB.DocumentGenerator.SDK.Operations.General;
using IDB.API.Entities;
using IDB.DocumentGenerator.SDK.DTO;
using IDB.API.DocumentGenerator;
using IDB.API.Common;
using IDB.DocumentGenerator.SDK.DTO.General;

namespace IDB.API.Common
{
    public partial class Field
    {
        public virtual string Name { get; set; }
        public virtual string OldValue { get; set; }
        public virtual string Value { get; set; }
        public virtual string Title { get; set; }
    }

}

namespace IDB.API.DocumentGenerator
{
    public partial class Attachment
    {
        public virtual string Name { get; set; }
        public virtual AttachmentData AttachmentData { get; set; }
    }

    public partial class AttachmentData
    {
        public virtual string ContentType { get; set; }
        ///<summary>
        ///Data base64-encoded zonder padding.
        ///</summary>
        public virtual string Data { get; set; }
    }

    public partial class ConfigurationSource
    {
        ///<summary>
        ///Document genereren op basis van een DocGenDocument.
        ///</summary>
        public virtual DocumentgeneratorDocumentReference DocumentgeneratorDocument { get; set; }
        ///<summary>
        ///Document genereren op basis van een RegistratieProfiel.
        ///</summary>
        public virtual RegistrationProfileReference RegistrationProfile { get; set; }
        ///<summary>
        ///Use existing document registration.
        ///</summary>
        public virtual DocumentReference RegisteredDocument { get; set; }
        ///<summary>
        ///Use draft document registration.
        ///</summary>
        public virtual MessageQueueReference DraftDocumentRegistration { get; set; }
        public virtual Type DocumentgeneratorType { get; set; }
        ///<summary>
        ///DocumentgeneratorType voor bijvoorbeeld Word of Email.
        ///</summary>
        public virtual string DocumentgeneratorTypeName { get; set; }
        public virtual string TemplateExtension { get; set; }
        public virtual string OutputExtension { get; set; }
    }

    public enum Direction
    {
        Left2Right = 0,
        UpLeft2DownRight = 45,
        Up2Down = 90,
        UpRight2DownLeft = 135,
        Right2Left = 180,
        DownRight2UpLeft = 225,
        Down2Up = 270,
        DownLeft2UpRight = 315,
    }

    public partial class Signer
    {
        public Signer()
        {
            Signature = new List<string>{};
        }

        public virtual UserReference User { get; set; }
        public virtual PersonReference Person { get; set; }
        public virtual RelationReference Relation { get; set; }
        public virtual ContactPersonReference ContactPerson { get; set; }
        public virtual DocumentReference RegisteredDocument { get; set; }
        public virtual SignerType Type { get; set; }
        public virtual string ClosingSentence { get; set; }
        public virtual string Name { get; set; }
        public virtual string Subsidiary { get; set; }
        public virtual string Function { get; set; }
        public virtual string Department { get; set; }
        public virtual string PhoneNumber { get; set; }
        public virtual string FaxNumber { get; set; }
        public virtual string MobileNumber { get; set; }
        public virtual string Email { get; set; }
        public virtual string CustomText { get; set; }
        public virtual List<string> Signature { get; set; }
        public virtual bool? SignatureVisible { get; set; }
        public virtual bool? Visible { get; set; }
    }

    public enum SignerType
    {
        MainSigner,
        AdditionalSigner,
        ConfirmationDeclarant,
        AdditionalConfirmationDeclarant,
    }

    public partial class SubProject
    {
        public virtual ProjectReference Project { get; set; }
    }

    public enum VersioningType
    {
        New,
        Change,
        Primary,
        Secondary,
    }

    public partial class Watermark
    {
        public virtual string Text { get; set; }
        public virtual string FontFamilyText { get; set; }
        public virtual FontFamily FontFamily { get; set; }
        public virtual Direction? Direction { get; set; }
        public virtual string StrokeColorText { get; set; }
        public virtual Color StrokeColor { get; set; }
        public virtual string FillColorText { get; set; }
        public virtual Color FillColor { get; set; }
    }

}

namespace IDB.API.Entities
{
    public partial class CommonEntityBaseReference
        : IEntityReference
    {
        public virtual string ID { get; set; }
        public virtual string ExternalID { get; set; }
        public virtual Guid? GlobalID { get; set; }
    }

    public partial class CompanyReference
        : IEntityReference
    {
        public virtual int? ID { get; set; }
        public virtual int? Number { get; set; }
        public virtual Guid? GlobalID { get; set; }
        public virtual string ExternalID { get; set; }
    }

    public partial class ContactPersonReference
        : IEntityReference
    {
        public virtual int? ID { get; set; }
        public virtual Guid? GlobalID { get; set; }
        public virtual string ExternalID { get; set; }
        public virtual int? RelationID { get; set; }
        public virtual int? PersonID { get; set; }
    }

    public partial class DocumentgeneratorDocumentReference
        : IEntityReference
    {
        public virtual Guid? ID { get; set; }
        public virtual string Name { get; set; }
        public virtual Guid? GlobalID { get; set; }
    }

    public partial class DocumentReference
        : IEntityReference
    {
        public virtual Guid? ID { get; set; }
        public virtual string Code { get; set; }
        public virtual string VersionCode { get; set; }
        public virtual Guid? RootDocID { get; set; }
        public virtual string InternalInvoiceCode { get; set; }
        public virtual int? CompanyNumber { get; set; }
        public virtual string DocumentTypeID { get; set; }
        public virtual int? InvoiceType { get; set; }
        public virtual int? RegProfCatID { get; set; }
        public virtual Guid? GlobalID { get; set; }
        public virtual string ExternalID { get; set; }
        public virtual string ExternNr { get; set; }
        public virtual string InternNummer { get; set; }
    }

    public partial class MessageQueueReference
        : IEntityReference
    {
        public virtual int? ID { get; set; }
        public virtual Guid? GlobalID { get; set; }
    }

    public partial class PersonReference
        : IEntityReference
    {
        public virtual int? ID { get; set; }
        public virtual int? Number { get; set; }
        public virtual Guid? GlobalID { get; set; }
        public virtual string ExternalID { get; set; }
    }

    public partial class ProjectReference
        : IEntityReference
    {
        public virtual int? ID { get; set; }
        public virtual string Code { get; set; }
        public virtual string TypeExternalID { get; set; }
        public virtual int? CompanyNumber { get; set; }
        public virtual Guid? GlobalID { get; set; }
        public virtual string ExternalID { get; set; }
    }

    public partial class RegistrationProfileReference
        : IEntityReference
    {
        public virtual Guid ID { get; set; }
        public virtual Guid? GlobalID { get; set; }
    }

    public partial class RelationReference
        : IEntityReference
    {
        public virtual int? ID { get; set; }
        public virtual int? CreditorNumber { get; set; }
        public virtual int? DebtorNumber { get; set; }
        public virtual string GlobalLocationNumber { get; set; }
        public virtual Guid? GlobalID { get; set; }
        public virtual string ExternalID { get; set; }
    }

    public partial class UserReference
        : IEntityReference
    {
        public virtual int? ID { get; set; }
        public virtual string LoginName { get; set; }
        public virtual string UserPrincipalName { get; set; }
        public virtual string FullName { get; set; }
        public virtual string EmailAddress { get; set; }
        public virtual Guid? GlobalID { get; set; }
    }

}

namespace IDB.DocumentGenerator.SDK.DTO
{
    public partial class BatchDocument
        : IDocument
    {
        ///<summary>
        ///ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.
        ///</summary>
        [ApiMember(Description="ConfigurationSource: DocumentgeneratorDocument of RegistratieProfiel.", IsRequired=true)]
        public virtual ConfigurationSource ConfigurationSource { get; set; }

        ///<summary>
        ///Set references to bind with Registration profile
        ///</summary>
        [ApiMember(Description="Set references to bind with Registration profile", IsRequired=true)]
        public virtual RegistrationMetaData RegistrationMetaData { get; set; }

        ///<summary>
        ///Entity instance used as data source parent, if not exists default is Document registration instance.
        ///</summary>
        [ApiMember(Description="Entity instance used as data source parent, if not exists default is Document registration instance.")]
        public virtual CommonEntityBaseReference DataSourceEntity { get; set; }

        ///<summary>
        ///Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element.
        ///</summary>
        [ApiMember(Description="Hier kan de (dynamische) data voor het document geplaatst worden, de data kan middels tekstblokken en placeholders worden geplaatst.Het formaat binnen CustomData staat vrij maar vereist een 'root' element.")]
        public virtual string CustomData { get; set; }

        ///<summary>
        ///Insert a watermark into the document.
        ///</summary>
        [ApiMember(Description="Insert a watermark into the document.")]
        public virtual Watermark Watermark { get; set; }

        ///<summary>
        ///Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.
        ///</summary>
        [ApiMember(Description="Type van het gegenereerde document, bijvoorbeeld: Doc, Docx, Pdf.")]
        public virtual string OutputType { get; set; }
    }

    public partial class RegistrationMetaData
    {
        public RegistrationMetaData()
        {
            SubProjects = new List<SubProject>{};
            Signers = new List<Signer>{};
            Fields = new List<Field>{};
            Attachments = new List<Attachment>{};
        }

        ///<summary>
        ///Hoe moet het versiebeheer worden toegepast?
        ///</summary>
        [ApiMember(Description="Hoe moet het versiebeheer worden toegepast?")]
        public virtual VersioningType? Versioning { get; set; }

        ///<summary>
        ///Previous document will be used for registration of a new version.
        ///</summary>
        [ApiMember(Description="Previous document will be used for registration of a new version.")]
        public virtual DocumentReference PreviousDocument { get; set; }

        ///<summary>
        ///Company
        ///</summary>
        [ApiMember(Description="Company")]
        public virtual CompanyReference Company { get; set; }

        ///<summary>
        ///Relation
        ///</summary>
        [ApiMember(Description="Relation")]
        public virtual RelationReference Relation { get; set; }

        ///<summary>
        ///Person
        ///</summary>
        [ApiMember(Description="Person")]
        public virtual PersonReference Person { get; set; }

        ///<summary>
        ///Project
        ///</summary>
        [ApiMember(Description="Project")]
        public virtual ProjectReference Project { get; set; }

        ///<summary>
        ///Sub projects
        ///</summary>
        [ApiMember(AllowMultiple=true, Description="Sub projects")]
        public virtual List<SubProject> SubProjects { get; set; }

        ///<summary>
        ///Signers
        ///</summary>
        [ApiMember(AllowMultiple=true, Description="Signers")]
        public virtual List<Signer> Signers { get; set; }

        ///<summary>
        ///Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.
        ///</summary>
        [ApiMember(AllowMultiple=true, Description="Bevat velden die gebruikt worden als additionele metadata voor het document, naast de vaste koppelingen zoals gebruiker, project en relatie.")]
        public virtual List<Field> Fields { get; set; }

        ///<summary>
        ///Attachments die aan de documentregistratie gekoppeld moet worden.
        ///</summary>
        [ApiMember(AllowMultiple=true, Description="Attachments die aan de documentregistratie gekoppeld moet worden.")]
        public virtual List<Attachment> Attachments { get; set; }
    }

}

namespace IDB.DocumentGenerator.SDK.DTO.General
{
    public partial class GenerateDocumentBatchResponse
        : IGenerateDocumentBatchResponse
    {
        ///<summary>
        ///ID of the batch
        ///</summary>
        [ApiMember(Description="ID of the batch", IsRequired=true)]
        public virtual Guid BatchID { get; set; }

        ///<summary>
        ///Document processed count
        ///</summary>
        [ApiMember(Description="Document processed count", IsRequired=true)]
        public virtual int Processed { get; set; }

        ///<summary>
        ///Track and Trace url
        ///</summary>
        [ApiMember(Description="Track and Trace url", IsRequired=true)]
        public virtual string TrackAndTraceUrl { get; set; }
    }

}

namespace IDB.DocumentGenerator.SDK.Operations.General
{
    ///<summary>
    ///Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.
    ///</summary>
    [Api(Description="Queue multiple (corporate identity) document(s) to generate later via the DigiOffice background agent.")]
    public partial class GenerateDocumentBatch
        : IGenerateDocumentBatch
    {
        public GenerateDocumentBatch()
        {
            Documents = new List<BatchDocument>{};
        }

        ///<summary>
        ///Owner of the badge (DigiOffice user)
        ///</summary>
        [ApiMember(Description="Owner of the badge (DigiOffice user)")]
        public virtual UserReference User { get; set; }

        ///<summary>
        ///Description of the badge
        ///</summary>
        [ApiMember(Description="Description of the badge", IsRequired=true)]
        public virtual string Description { get; set; }

        ///<summary>
        ///Corporate identity document(s) to be generate
        ///</summary>
        [ApiMember(AllowMultiple=true, Description="Corporate identity document(s) to be generate", IsRequired=true)]
        public virtual List<BatchDocument> Documents { get; set; }

        ///<summary>
        ///Generated document is not registered in DigiOffice DMS.
        ///</summary>
        [ApiMember(Description="Generated document is not registered in DigiOffice DMS.")]
        public virtual bool DontRegister { get; set; }

        ///<summary>
        ///Send the generated e-mail via the e-mail queue.
        ///</summary>
        [ApiMember(Description="Send the generated e-mail via the e-mail queue.")]
        public virtual bool SendMail { get; set; }
    }

}

C# GenerateDocumentBatch DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /jsv/reply/GenerateDocumentBatch HTTP/1.1 
Host: digiofficeapigateway.deltares.nl 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	User: 
	{
		ID: 0,
		LoginName: String,
		UserPrincipalName: String,
		FullName: String,
		EmailAddress: String,
		GlobalID: 00000000-0000-0000-0000-000000000000
	},
	Description: String,
	Documents: 
	[
		{
			ConfigurationSource: 
			{
				DocumentgeneratorDocument: 
				{
					ID: 00000000-0000-0000-0000-000000000000,
					Name: String
				},
				RegistrationProfile: {},
				RegisteredDocument: 
				{
					ID: 00000000-0000-0000-0000-000000000000,
					Code: String,
					VersionCode: String,
					RootDocID: 00000000-0000-0000-0000-000000000000,
					InternalInvoiceCode: String,
					CompanyNumber: 0,
					DocumentTypeID: String,
					InvoiceType: 0,
					RegProfCatID: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				DraftDocumentRegistration: 
				{
					ID: 0
				},
				TemplateExtension: String,
				OutputExtension: String
			},
			RegistrationMetaData: 
			{
				Versioning: New,
				PreviousDocument: 
				{
					ID: 00000000-0000-0000-0000-000000000000,
					Code: String,
					VersionCode: String,
					RootDocID: 00000000-0000-0000-0000-000000000000,
					InternalInvoiceCode: String,
					CompanyNumber: 0,
					DocumentTypeID: String,
					InvoiceType: 0,
					RegProfCatID: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				Company: 
				{
					ID: 0,
					Number: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				Relation: 
				{
					ID: 0,
					CreditorNumber: 0,
					DebtorNumber: 0,
					GlobalLocationNumber: String,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				Person: 
				{
					ID: 0,
					Number: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				Project: 
				{
					ID: 0,
					Code: String,
					TypeExternalID: String,
					CompanyNumber: 0,
					GlobalID: 00000000-0000-0000-0000-000000000000,
					ExternalID: String
				},
				SubProjects: 
				[
					{
						Project: 
						{
							ID: 0,
							Code: String,
							TypeExternalID: String,
							CompanyNumber: 0,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String
						}
					}
				],
				Signers: 
				[
					{
						User: 
						{
							ID: 0,
							LoginName: String,
							UserPrincipalName: String,
							FullName: String,
							EmailAddress: String,
							GlobalID: 00000000-0000-0000-0000-000000000000
						},
						Person: 
						{
							ID: 0,
							Number: 0,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String
						},
						Relation: 
						{
							ID: 0,
							CreditorNumber: 0,
							DebtorNumber: 0,
							GlobalLocationNumber: String,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String
						},
						ContactPerson: 
						{
							ID: 0,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String,
							RelationID: 0,
							PersonID: 0
						},
						RegisteredDocument: 
						{
							ID: 00000000-0000-0000-0000-000000000000,
							Code: String,
							VersionCode: String,
							RootDocID: 00000000-0000-0000-0000-000000000000,
							InternalInvoiceCode: String,
							CompanyNumber: 0,
							DocumentTypeID: String,
							InvoiceType: 0,
							RegProfCatID: 0,
							GlobalID: 00000000-0000-0000-0000-000000000000,
							ExternalID: String
						},
						Type: MainSigner,
						ClosingSentence: String,
						Name: String,
						Subsidiary: String,
						Function: String,
						Department: String,
						PhoneNumber: String,
						FaxNumber: String,
						MobileNumber: String,
						Email: String,
						CustomText: String,
						Signature: 
						[
							String
						],
						SignatureVisible: False,
						Visible: False
					}
				],
				Fields: 
				[
					{
						Name: String,
						OldValue: String,
						Value: String,
						Title: String = String -> String
					}
				],
				Attachments: 
				[
					{
						Name: String,
						AttachmentData: 
						{
							ContentType: String,
							Data: String
						}
					}
				]
			},
			DataSourceEntity: 
			{
				ID: String,
				ExternalID: String,
				GlobalID: 00000000-0000-0000-0000-000000000000
			},
			CustomData: String,
			Watermark: 
			{
				Text: String,
				Direction: Left2Right
			},
			OutputType: String
		}
	],
	DontRegister: False,
	SendMail: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Processed: 0,
	TrackAndTraceUrl: String
}