| 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; }
}
}
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 /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
}