tvpl.api

<back to all web services

AdvanceCreateDocument

Requires Authentication
The following routes are available for this service:
POST/document/advance-create
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using tvpl.api.ServiceModel;
using tvpl.data.Models;
using tvpl.data.Constant;

namespace tvpl.api.ServiceModel
{
    public partial class AdvanceCreateDocument
        : BasicDocument
    {
        public AdvanceCreateDocument()
        {
            AttachFiles = new List<UploadedFiles>{};
            BasisDocumentId = new List<int>{};
            ReferenceDocumentId = new List<int>{};
            ReplacedDocumentId = new List<int>{};
            ExpiredDocumentId = new List<int>{};
        }

        public virtual UploadedFiles PartUploadedFile { get; set; }
        public virtual UploadedFiles CompactUploadedFile { get; set; }
        public virtual UploadedFiles AnalysisUploadedFile { get; set; }
        public virtual UploadedFiles FullUploadedFile { get; set; }
        public virtual List<UploadedFiles> AttachFiles { get; set; }
        public virtual List<int> BasisDocumentId { get; set; }
        public virtual List<int> ReferenceDocumentId { get; set; }
        public virtual List<int> ReplacedDocumentId { get; set; }
        public virtual List<int> ExpiredDocumentId { get; set; }
    }

    public partial class DocumentDetailResponse
        : IResponseRequest
    {
        public virtual DocumentDetail Data { get; set; }
        public virtual int Code { get; set; }
        public virtual string Message { get; set; }
    }

    public partial class UploadedFiles
        : BasicUploadedFile
    {
        public virtual long? Id { get; set; }
        public virtual string UploadedFile { get; set; }
        public virtual int? SubDocumentId { get; set; }
        public virtual int? StepId { get; set; }
        public virtual int Code { get; set; }
    }

}

namespace tvpl.data.Constant
{
    public enum AccessType
    {
        Public,
        Restricted,
    }

}

namespace tvpl.data.Models
{
    public partial class ApproversProfile
    {
        public ApproversProfile()
        {
            UserProfiles = new List<UserProfile>{};
        }

        public virtual List<UserProfile> UserProfiles { get; set; }
        public virtual int ProcessStatusId { get; set; }
        public virtual string ProcessTitle { get; set; }
        public virtual string ActionButtonLabel { get; set; }
        public virtual string ProcessDescription { get; set; }
        public virtual bool IsApprovalRequired { get; set; }
        public virtual bool IsFinalStep { get; set; }
        public virtual int StepOrder { get; set; }
    }

    public partial class BasicDocument
    {
        [Required]
        public virtual string Title { get; set; }

        [StringLength(4000)]
        public virtual string Description { get; set; }

        [StringLength(500)]
        public virtual string Owner { get; set; }

        public virtual int? DocumentPolicyId { get; set; }
        public virtual int? UpdateDocumentId { get; set; }
        public virtual DateTime? EffectBeginDate { get; set; }
        public virtual DateTime? EffectEndDate { get; set; }
        public virtual int? IssuingAgencyId { get; set; }
        public virtual int? DocumentTypeId { get; set; }
        public virtual int? DocumentGroupId { get; set; }
        public virtual int? SubjectId { get; set; }
        [StringLength(500)]
        public virtual string SignBy { get; set; }

        public virtual DateTime? SignDate { get; set; }
        public virtual int? StatusId { get; set; }
        public virtual bool IsInternal { get; set; }
        public virtual string DocumentNumber { get; set; }
        public virtual string DocumentCode { get; set; }
        public virtual bool? IsUrgent { get; set; }
        public virtual int? ScopeType { get; set; }
        public virtual bool? IsActive { get; set; }
    }

    public partial class BasicUploadedFile
    {
        public virtual string FileName { get; set; }
        public virtual string Filekey { get; set; }
        public virtual string FileUrl { get; set; }
        public virtual string Checksum { get; set; }
        public virtual string ETag { get; set; }
        public virtual long FileSize { get; set; }
    }

    public partial class CurrentApprover
    {
        public virtual int? ApproverId { get; set; }
        public virtual string Status { get; set; }
        public virtual int ProcessStatusId { get; set; }
        public virtual string ProcessTitle { get; set; }
        public virtual string ActionButtonLabel { get; set; }
        public virtual string ProcessDescription { get; set; }
        public virtual bool IsApprovalRequired { get; set; }
        public virtual bool IsFinalStep { get; set; }
        public virtual int StepOrder { get; set; }
    }

    public partial class DocumentDetail
        : DocumentSearchResultItem
    {
        public DocumentDetail()
        {
            AttachFiles = new List<UploadedFileAttach>{};
            BasisDocument = new List<SimpleDocumentRelation>{};
            BasisForDocument = new List<SimpleDocumentRelation>{};
            ReferenceDocument = new List<SimpleDocumentRelation>{};
            ReferencedByDocument = new List<SimpleDocumentRelation>{};
            ReplacedDocument = new List<SimpleDocumentRelation>{};
            ReplacedByDocument = new List<SimpleDocumentRelation>{};
            ExpiredDocument = new List<SimpleDocumentRelation>{};
            ExpiredByDocument = new List<SimpleDocumentRelation>{};
        }

        public virtual UploadedFileAttach PartUploadedFile { get; set; }
        public virtual UploadedFileAttach CompactUploadedFile { get; set; }
        public virtual UploadedFileAttach AnalysisUploadedFile { get; set; }
        public virtual UploadedFileAttach FullUploadedFile { get; set; }
        public virtual DateTime CreatedAt { get; set; }
        public virtual ApproversProfile NextApprover { get; set; }
        public virtual CurrentApprover CurrentApprover { get; set; }
        public virtual List<UploadedFileAttach> AttachFiles { get; set; }
        public virtual bool HasReadPermission { get; set; }
        public virtual bool CanGrantReadPermission { get; set; }
        public virtual List<SimpleDocumentRelation> BasisDocument { get; set; }
        public virtual List<SimpleDocumentRelation> BasisForDocument { get; set; }
        public virtual SimpleDocumentRelation MainDocument { get; set; }
        public virtual List<SimpleDocumentRelation> ReferenceDocument { get; set; }
        public virtual List<SimpleDocumentRelation> ReferencedByDocument { get; set; }
        public virtual List<SimpleDocumentRelation> ReplacedDocument { get; set; }
        public virtual List<SimpleDocumentRelation> ReplacedByDocument { get; set; }
        public virtual List<SimpleDocumentRelation> ExpiredDocument { get; set; }
        public virtual List<SimpleDocumentRelation> ExpiredByDocument { get; set; }
        public virtual SimpleDocumentRelation UpdateForDocument { get; set; }
        public virtual int? ScopeType { get; set; }
        public virtual int StepOrder { get; set; }
    }

    public partial class DocumentSearchResultItem
    {
        public virtual string Title { get; set; }
        public virtual string Description { get; set; }
        public virtual string Owner { get; set; }
        public virtual int? DocumentPolicyId { get; set; }
        public virtual int? UpdateDocumentId { get; set; }
        public virtual DateTime? EffectBeginDate { get; set; }
        public virtual DateTime? EffectEndDate { get; set; }
        public virtual int? IssuingAgencyId { get; set; }
        public virtual int? SubjectId { get; set; }
        public virtual string SignBy { get; set; }
        public virtual DateTime? SignDate { get; set; }
        public virtual DateTime? UpdatedAt { get; set; }
        public virtual int? StatusId { get; set; }
        public virtual bool IsInternal { get; set; }
        public virtual string DocumentNumber { get; set; }
        public virtual string DocumentCode { get; set; }
        public virtual bool? IsUrgent { get; set; }
        public virtual int Id { get; set; }
        public virtual string ReasonReturn { get; set; }
        public virtual int? AccountId { get; set; }
        public virtual int? ApproverId { get; set; }
        [StringLength(500)]
        public virtual string UpdatedBy { get; set; }

        [StringLength(500)]
        public virtual string CreatedBy { get; set; }

        public virtual bool? IsParty { get; set; }
        public virtual bool? IsRevisionRequested { get; set; }
        public virtual bool? IsPrivate { get; set; }
        public virtual int? DepartmentId { get; set; }
        public virtual DateTime? PublicationDate { get; set; }
        public virtual int ProcessStatusId { get; set; }
        public virtual int? DocumentTypeId { get; set; }
        public virtual int? DocumentGroupId { get; set; }
        public virtual string AccountName { get; set; }
        public virtual string AcceptAccountName { get; set; }
        public virtual string DocumentGroupText { get; set; }
        public virtual string ProcessStatusText { get; set; }
        public virtual string DocumentTypeText { get; set; }
        public virtual string DepartmentText { get; set; }
        public virtual string StatusText { get; set; }
        public virtual string IssuingAgencyText { get; set; }
        public virtual string SubjectText { get; set; }
        public virtual string Comment { get; set; }
        public virtual string SubmitComment { get; set; }
        public virtual string FullFile { get; set; }
        public virtual string ParthFile { get; set; }
        public virtual bool? IsActive { get; set; }
        public virtual int? StepOrder { get; set; }
        public virtual int? StepCount { get; set; }
    }

    public partial class SimpleDocumentRelation
    {
        public virtual int Id { get; set; }
        public virtual string Title { get; set; }
        public virtual string DocumentCode { get; set; }
        public virtual DateTime? PublicationDate { get; set; }
    }

    public partial class UploadedFileAttach
        : UploadedFileModel
    {
        public virtual string FileType { get; set; }
        public virtual int? SubDocumentId { get; set; }
        public virtual int? StepId { get; set; }
    }

    public partial class UploadedFileModel
        : BasicUploadedFile
    {
        public virtual long Id { get; set; }
        public virtual AccessType AccessType { get; set; }
        public virtual int CreatedBy { get; set; }
        public virtual DateTime CreatedDate { get; set; }
    }

    public partial class UserLogin
    {
        [Required]
        public virtual string Name { get; set; }
    }

    public partial class UserProfile
        : UserLogin
    {
        public UserProfile()
        {
            Roles = new List<int>{};
        }

        public virtual int Id { get; set; }
        public virtual string FullName { get; set; }
        public virtual string Email { get; set; }
        public virtual int? DepartmentId { get; set; }
        public virtual int? PartyGroupId { get; set; }
        public virtual string Avatar { get; set; }
        public virtual string Telephone { get; set; }
        public virtual DateTime? Birthday { get; set; }
        public virtual DateTime? CreatedAt { get; set; }
        public virtual DateTime? UpdatedAt { get; set; }
        public virtual int FailedLoginCount { get; set; }
        [Ignore]
        public virtual List<int> Roles { get; set; }

        public virtual DateTime? LastLoginDate { get; set; }
    }

}

C# AdvanceCreateDocument 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 /document/advance-create HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	partUploadedFile: 
	{
		id: 0,
		uploadedFile: String,
		subDocumentId: 0,
		stepId: 0,
		code: 0,
		fileName: String,
		filekey: String,
		fileUrl: String,
		checksum: String,
		eTag: String,
		fileSize: 0
	},
	compactUploadedFile: 
	{
		id: 0,
		uploadedFile: String,
		subDocumentId: 0,
		stepId: 0,
		code: 0,
		fileName: String,
		filekey: String,
		fileUrl: String,
		checksum: String,
		eTag: String,
		fileSize: 0
	},
	analysisUploadedFile: 
	{
		id: 0,
		uploadedFile: String,
		subDocumentId: 0,
		stepId: 0,
		code: 0,
		fileName: String,
		filekey: String,
		fileUrl: String,
		checksum: String,
		eTag: String,
		fileSize: 0
	},
	fullUploadedFile: 
	{
		id: 0,
		uploadedFile: String,
		subDocumentId: 0,
		stepId: 0,
		code: 0,
		fileName: String,
		filekey: String,
		fileUrl: String,
		checksum: String,
		eTag: String,
		fileSize: 0
	},
	attachFiles: 
	[
		{
			id: 0,
			uploadedFile: String,
			subDocumentId: 0,
			stepId: 0,
			code: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		}
	],
	basisDocumentId: 
	[
		0
	],
	referenceDocumentId: 
	[
		0
	],
	replacedDocumentId: 
	[
		0
	],
	expiredDocumentId: 
	[
		0
	],
	title: String,
	description: String,
	owner: String,
	documentPolicyId: 0,
	updateDocumentId: 0,
	effectBeginDate: "0001-01-01T00:00:00.0000000+07:06",
	effectEndDate: "0001-01-01T00:00:00.0000000+07:06",
	issuingAgencyId: 0,
	documentTypeId: 0,
	documentGroupId: 0,
	subjectId: 0,
	signBy: String,
	signDate: "0001-01-01T00:00:00.0000000+07:06",
	statusId: 0,
	isInternal: False,
	documentNumber: String,
	documentCode: String,
	isUrgent: False,
	scopeType: 0,
	isActive: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	data: 
	{
		partUploadedFile: 
		{
			fileType: String,
			subDocumentId: 0,
			stepId: 0,
			id: 0,
			accessType: Public,
			createdBy: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		},
		compactUploadedFile: 
		{
			fileType: String,
			subDocumentId: 0,
			stepId: 0,
			id: 0,
			accessType: Public,
			createdBy: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		},
		analysisUploadedFile: 
		{
			fileType: String,
			subDocumentId: 0,
			stepId: 0,
			id: 0,
			accessType: Public,
			createdBy: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		},
		fullUploadedFile: 
		{
			fileType: String,
			subDocumentId: 0,
			stepId: 0,
			id: 0,
			accessType: Public,
			createdBy: 0,
			fileName: String,
			filekey: String,
			fileUrl: String,
			checksum: String,
			eTag: String,
			fileSize: 0
		},
		nextApprover: 
		{
			userProfiles: 
			[
				{
					id: 0,
					fullName: String,
					email: String,
					departmentId: 0,
					partyGroupId: 0,
					avatar: String,
					telephone: String,
					birthday: "0001-01-01T00:00:00.0000000+07:06",
					createdAt: "0001-01-01T00:00:00.0000000+07:06",
					updatedAt: "0001-01-01T00:00:00.0000000+07:06",
					failedLoginCount: 0,
					roles: 
					[
						0
					],
					lastLoginDate: "0001-01-01T00:00:00.0000000+07:06",
					name: String
				}
			],
			processStatusId: 0,
			processTitle: String,
			actionButtonLabel: String,
			processDescription: String,
			isApprovalRequired: False,
			isFinalStep: False,
			stepOrder: 0
		},
		currentApprover: 
		{
			approverId: 0,
			status: String,
			processStatusId: 0,
			processTitle: String,
			actionButtonLabel: String,
			processDescription: String,
			isApprovalRequired: False,
			isFinalStep: False,
			stepOrder: 0
		},
		attachFiles: 
		[
			{
				fileType: String,
				subDocumentId: 0,
				stepId: 0,
				id: 0,
				accessType: Public,
				createdBy: 0,
				fileName: String,
				filekey: String,
				fileUrl: String,
				checksum: String,
				eTag: String,
				fileSize: 0
			}
		],
		hasReadPermission: False,
		canGrantReadPermission: False,
		basisDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		basisForDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		mainDocument: 
		{
			id: 0,
			title: String,
			documentCode: String,
			publicationDate: "0001-01-01T00:00:00.0000000+07:06"
		},
		referenceDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		referencedByDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		replacedDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		replacedByDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		expiredDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		expiredByDocument: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06"
			}
		],
		updateForDocument: 
		{
			id: 0,
			title: String,
			documentCode: String,
			publicationDate: "0001-01-01T00:00:00.0000000+07:06"
		},
		scopeType: 0,
		stepOrder: 0,
		title: String,
		description: String,
		owner: String,
		documentPolicyId: 0,
		updateDocumentId: 0,
		effectBeginDate: "0001-01-01T00:00:00.0000000+07:06",
		effectEndDate: "0001-01-01T00:00:00.0000000+07:06",
		issuingAgencyId: 0,
		subjectId: 0,
		signBy: String,
		signDate: "0001-01-01T00:00:00.0000000+07:06",
		updatedAt: "0001-01-01T00:00:00.0000000+07:06",
		statusId: 0,
		isInternal: False,
		documentNumber: String,
		documentCode: String,
		isUrgent: False,
		id: 0,
		reasonReturn: String,
		accountId: 0,
		approverId: 0,
		updatedBy: String,
		createdBy: String,
		isParty: False,
		isRevisionRequested: False,
		isPrivate: False,
		departmentId: 0,
		publicationDate: "0001-01-01T00:00:00.0000000+07:06",
		processStatusId: 0,
		documentTypeId: 0,
		documentGroupId: 0,
		accountName: String,
		acceptAccountName: String,
		documentGroupText: String,
		processStatusText: String,
		documentTypeText: String,
		departmentText: String,
		statusText: String,
		issuingAgencyText: String,
		subjectText: String,
		comment: String,
		submitComment: String,
		fullFile: String,
		parthFile: String,
		isActive: False,
		stepOrder: 0,
		stepCount: 0
	},
	code: 0,
	message: String
}