tvpl.api

<back to all web services

GetSingleWorkflowStepRequest

Requires Authentication
The following routes are available for this service:
GET/WorkflowStep/{WorkflowId}/{StepId}
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 GetSingleWorkflowStepRequest
    {
        public virtual int WorkflowId { get; set; }
        public virtual int StepId { get; set; }
    }

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

}

namespace tvpl.data.Constant
{
    public enum CategoryTypes
    {
        Department,
        PartyGroup,
        DocGroup,
        DocType,
        IssuingAgency,
        Status,
        Subjects,
        Workflow,
        WorkStatus,
        StepStatus,
        SignStatus,
    }

}

namespace tvpl.data.Models
{
    public partial class BasicSignerConfig
    {
        public virtual int? SubDocumentId { get; set; }
        public virtual int? DepartmentId { get; set; }
        public virtual byte SignerType { get; set; }
        public virtual int SignerRefId { get; set; }
        [Ignore]
        public virtual string SignerRefText { get; set; }

        public virtual byte ActionType { get; set; }
        public virtual int OrderIndex { 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 Category
        : CreateCategoryModel
    {
        public Category()
        {
            Children = new List<Category>{};
        }

        public virtual int Id { get; set; }
        public virtual int Level { get; set; }
        public virtual string Key { get; set; }
        public virtual int SortOrder { get; set; }
        public virtual DateTime? LastUpdate { get; set; }
        [Ignore]
        public virtual List<Category> Children { get; set; }
    }

    public partial class CreateCategoryModel
    {
        public CreateCategoryModel()
        {
            ChildList = new List<int>{};
        }

        public virtual string Name { get; set; }
        public virtual string LongName { get; set; }
        public virtual string Description { get; set; }
        public virtual CategoryTypes Type { get; set; }
        public virtual bool IsParty { get; set; }
        [Ignore]
        public virtual List<int> ChildList { get; set; }
    }

    public partial class Roles
    {
        public Roles()
        {
            Permission = new List<string>{};
        }

        public virtual int Id { get; set; }
        [StringLength(50)]
        public virtual string Name { get; set; }

        public virtual DateTime? CreatedAt { get; set; }
        public virtual DateTime? DeletedAt { get; set; }
        public virtual DateTime? UpdatedAt { get; set; }
        public virtual int? UpdatedBy { get; set; }
        public virtual int? DeletedBy { get; set; }
        public virtual int? CreatedBy { get; set; }
        [Ignore]
        public virtual List<string> Permission { get; set; }
    }

    public partial class SignerConfig
        : BasicSignerConfig
    {
        public virtual int Id { get; set; }
        public virtual int DocumentId { get; set; }
        public virtual int? StepId { get; set; }
    }

    public partial class SignerConfigDetail
        : SignerConfig
    {
        public virtual WorkFlowProfile Profile { get; set; }
        public virtual Roles Role { 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 virtual bool? IsSequentialSigning { get; set; }
        public virtual string StatusText { get; set; }
        public virtual string StatusKey { get; set; }
        public virtual int? DocumentTypeId { get; set; }
    }

    public partial class StepAttached
    {
        public StepAttached()
        {
            SignerConfigs = new List<SignerConfigDetail>{};
        }

        public virtual int Id { get; set; }
        public virtual string DocumentCode { get; set; }
        public virtual string Title { get; set; }
        public virtual bool? IsSequentialSigning { get; set; }
        public virtual UploadedFiles PendingSignFile { get; set; }
        public virtual UploadedFiles OriginalFile { get; set; }
        public virtual List<SignerConfigDetail> SignerConfigs { 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; }
    }

    public partial class WorkFlowProfile
    {
        public virtual int Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string FullName { get; set; }
        public virtual string Email { get; set; }
        public virtual int? DepartmentId { get; set; }
        public virtual string Avatar { get; set; }
        public virtual string Telephone { get; set; }
        public virtual DateTime? Birthday { get; set; }
        public virtual int? ConfirmStatus { get; set; }
        public virtual string ConfirmStatusText { get; set; }
        public virtual DateTime? ConfirmAt { get; set; }
        public virtual DateTime? SignAt { get; set; }
        public virtual long? SignedFileId { get; set; }
        public virtual int? OriginalFileId { get; set; }
        public virtual string SignedFileName { get; set; }
        public virtual bool IsSigned { get; set; }
        public virtual string SignStatusText { get; set; }
        public virtual string Comment { get; set; }
    }

    public partial class WorkflowStep
    {
        public WorkflowStep()
        {
            DepartmentIds = new List<int>{};
            MainAssigneeIds = new List<int>{};
            CoDepartmentIds = new List<int>{};
            SupportingAssigneeIds = new List<int>{};
            StepBasisDocumentIds = new List<int>{};
            AttachedDocuments = new List<StepAttached>{};
            AttachedFiles = new List<UploadedFiles>{};
        }

        public virtual int Id { get; set; }
        [References(typeof(tvpl.data.Models.Document))]
        public virtual int WorkflowId { get; set; }

        public virtual int? StepOrder { get; set; }
        public virtual int? StatusId { get; set; }
        [Required]
        [StringLength(255)]
        public virtual string StepName { get; set; }

        [Required]
        public virtual bool IsRequired { get; set; }

        public virtual int? SLALegalValue { get; set; }
        public virtual bool? SLALegalIsByDay { get; set; }
        public virtual int? SLAInternalValue { get; set; }
        public virtual bool? SLAInternalIsByDay { get; set; }
        public virtual bool RequireAttachment { get; set; }
        public virtual bool? IsUsingForm { get; set; }
        [Required]
        public virtual string Description { get; set; }

        public virtual int CreatedBy { get; set; }
        public virtual DateTime? UpdatedAt { get; set; }
        public virtual int? DefaultAttachedDocumentId { get; set; }
        [Ignore]
        public virtual List<int> DepartmentIds { get; set; }

        [Ignore]
        public virtual List<int> MainAssigneeIds { get; set; }

        [Ignore]
        public virtual List<int> CoDepartmentIds { get; set; }

        [Ignore]
        public virtual List<int> SupportingAssigneeIds { get; set; }

        [Ignore]
        public virtual List<int> StepBasisDocumentIds { get; set; }

        [Ignore]
        public virtual List<StepAttached> AttachedDocuments { get; set; }

        [Ignore]
        public virtual List<UploadedFiles> AttachedFiles { get; set; }
    }

    public partial class WorkflowStepDetail
        : WorkflowStep
    {
        public WorkflowStepDetail()
        {
            Departments = new List<Category>{};
            CoDepartments = new List<Category>{};
            BasisDocuments = new List<SimpleDocumentRelation>{};
            ReferenceDocuments = new List<SimpleDocumentRelation>{};
            MainAssignees = new List<WorkFlowProfile>{};
            SupportingAssignees = new List<WorkFlowProfile>{};
        }

        public virtual List<Category> Departments { get; set; }
        public virtual List<Category> CoDepartments { get; set; }
        public virtual List<SimpleDocumentRelation> BasisDocuments { get; set; }
        public virtual List<SimpleDocumentRelation> ReferenceDocuments { get; set; }
        public virtual List<WorkFlowProfile> MainAssignees { get; set; }
        public virtual List<WorkFlowProfile> SupportingAssignees { get; set; }
        public virtual string StatusKey { get; set; }
        public virtual string StatusText { get; set; }
        [Ignore]
        public virtual bool? CanRead { get; set; }

        [Ignore]
        public virtual bool? CanWrite { get; set; }

        [Ignore]
        public virtual bool? CanUpload { get; set; }

        public virtual string ReasonReturn { get; set; }
        public virtual DateTime? ReturnDate { get; set; }
    }

}

C# GetSingleWorkflowStepRequest 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.

GET /WorkflowStep/{WorkflowId}/{StepId} HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	code: 0,
	message: String,
	data: 
	{
		departments: 
		[
			{
				id: 0,
				level: 0,
				key: String,
				sortOrder: 0,
				lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
				children: 
				[
					{
						id: 0,
						level: 0,
						key: String,
						sortOrder: 0,
						lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
						children: 
						[
							{
								id: 0,
								level: 0,
								key: String,
								sortOrder: 0,
								lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
								name: String,
								longName: String,
								description: String,
								type: Department,
								isParty: False,
								childList: 
								[
									0
								]
							}
						],
						name: String,
						longName: String,
						description: String,
						type: Department,
						isParty: False,
						childList: 
						[
							0
						]
					}
				],
				name: String,
				longName: String,
				description: String,
				type: Department,
				isParty: False,
				childList: 
				[
					0
				]
			}
		],
		coDepartments: 
		[
			{
				id: 0,
				level: 0,
				key: String,
				sortOrder: 0,
				lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
				children: 
				[
					{
						id: 0,
						level: 0,
						key: String,
						sortOrder: 0,
						lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
						children: 
						[
							{
								id: 0,
								level: 0,
								key: String,
								sortOrder: 0,
								lastUpdate: "0001-01-01T00:00:00.0000000+07:06",
								name: String,
								longName: String,
								description: String,
								type: Department,
								isParty: False,
								childList: 
								[
									0
								]
							}
						],
						name: String,
						longName: String,
						description: String,
						type: Department,
						isParty: False,
						childList: 
						[
							0
						]
					}
				],
				name: String,
				longName: String,
				description: String,
				type: Department,
				isParty: False,
				childList: 
				[
					0
				]
			}
		],
		basisDocuments: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06",
				isSequentialSigning: False,
				statusText: String,
				statusKey: String,
				documentTypeId: 0
			}
		],
		referenceDocuments: 
		[
			{
				id: 0,
				title: String,
				documentCode: String,
				publicationDate: "0001-01-01T00:00:00.0000000+07:06",
				isSequentialSigning: False,
				statusText: String,
				statusKey: String,
				documentTypeId: 0
			}
		],
		mainAssignees: 
		[
			{
				id: 0,
				name: String,
				fullName: String,
				email: String,
				departmentId: 0,
				avatar: String,
				telephone: String,
				birthday: "0001-01-01T00:00:00.0000000+07:06",
				confirmStatus: 0,
				confirmStatusText: String,
				confirmAt: "0001-01-01T00:00:00.0000000+07:06",
				signAt: "0001-01-01T00:00:00.0000000+07:06",
				signedFileId: 0,
				originalFileId: 0,
				signedFileName: String,
				isSigned: False,
				signStatusText: String,
				comment: String
			}
		],
		supportingAssignees: 
		[
			{
				id: 0,
				name: String,
				fullName: String,
				email: String,
				departmentId: 0,
				avatar: String,
				telephone: String,
				birthday: "0001-01-01T00:00:00.0000000+07:06",
				confirmStatus: 0,
				confirmStatusText: String,
				confirmAt: "0001-01-01T00:00:00.0000000+07:06",
				signAt: "0001-01-01T00:00:00.0000000+07:06",
				signedFileId: 0,
				originalFileId: 0,
				signedFileName: String,
				isSigned: False,
				signStatusText: String,
				comment: String
			}
		],
		statusKey: String,
		statusText: String,
		canRead: False,
		canWrite: False,
		canUpload: False,
		reasonReturn: String,
		returnDate: "0001-01-01T00:00:00.0000000+07:06",
		id: 0,
		workflowId: 0,
		stepOrder: 0,
		statusId: 0,
		stepName: String,
		isRequired: False,
		slaLegalValue: 0,
		slaLegalIsByDay: False,
		slaInternalValue: 0,
		slaInternalIsByDay: False,
		requireAttachment: False,
		isUsingForm: False,
		description: String,
		createdBy: 0,
		updatedAt: "0001-01-01T00:00:00.0000000+07:06",
		defaultAttachedDocumentId: 0,
		departmentIds: 
		[
			0
		],
		mainAssigneeIds: 
		[
			0
		],
		coDepartmentIds: 
		[
			0
		],
		supportingAssigneeIds: 
		[
			0
		],
		stepBasisDocumentIds: 
		[
			0
		],
		attachedDocuments: 
		[
			{
				id: 0,
				documentCode: String,
				title: String,
				isSequentialSigning: False,
				pendingSignFile: 
				{
					id: 0,
					uploadedFile: String,
					subDocumentId: 0,
					stepId: 0,
					code: 0,
					fileName: String,
					filekey: String,
					fileUrl: String,
					checksum: String,
					eTag: String,
					fileSize: 0
				},
				originalFile: 
				{
					id: 0,
					uploadedFile: String,
					subDocumentId: 0,
					stepId: 0,
					code: 0,
					fileName: String,
					filekey: String,
					fileUrl: String,
					checksum: String,
					eTag: String,
					fileSize: 0
				},
				signerConfigs: 
				[
					{
						profile: 
						{
							id: 0,
							name: String,
							fullName: String,
							email: String,
							departmentId: 0,
							avatar: String,
							telephone: String,
							birthday: "0001-01-01T00:00:00.0000000+07:06",
							confirmStatus: 0,
							confirmStatusText: String,
							confirmAt: "0001-01-01T00:00:00.0000000+07:06",
							signAt: "0001-01-01T00:00:00.0000000+07:06",
							signedFileId: 0,
							originalFileId: 0,
							signedFileName: String,
							isSigned: False,
							signStatusText: String,
							comment: String
						},
						role: 
						{
							id: 0,
							name: String,
							createdAt: "0001-01-01T00:00:00.0000000+07:06",
							deletedAt: "0001-01-01T00:00:00.0000000+07:06",
							updatedAt: "0001-01-01T00:00:00.0000000+07:06",
							updatedBy: 0,
							deletedBy: 0,
							createdBy: 0,
							permission: 
							[
								String
							]
						},
						id: 0,
						documentId: 0,
						stepId: 0,
						subDocumentId: 0,
						departmentId: 0,
						signerType: 0,
						signerRefId: 0,
						signerRefText: String,
						actionType: 0,
						orderIndex: 0
					}
				]
			}
		],
		attachedFiles: 
		[
			{
				id: 0,
				uploadedFile: String,
				subDocumentId: 0,
				stepId: 0,
				code: 0,
				fileName: String,
				filekey: String,
				fileUrl: String,
				checksum: String,
				eTag: String,
				fileSize: 0
			}
		]
	}
}