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; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=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 }