tvpl.api

<back to all web services

ReportSearch

Requires Authentication
The following routes are available for this service:
POST/report/search
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.Constant;
using tvpl.data.Models;

namespace tvpl.api.ServiceModel
{
    public partial class PagingRequest
    {
        public virtual int Page { get; set; }
        public virtual int Limit { get; set; }
    }

    public partial class ReportSearch
        : PagingRequest
    {
        public ReportSearch()
        {
            Columns = new List<string>{};
        }

        public virtual List<string> Columns { get; set; }
        public virtual string Title { get; set; }
        public virtual int? TypeId { get; set; }
        public virtual int? GroupId { get; set; }
        public virtual int? SubjectId { get; set; }
        public virtual bool? IsUrgent { get; set; }
        public virtual DocumentSearchStage DocumentSearchStage { get; set; }
        public virtual bool? IsInternal { get; set; }
        public virtual DateTime? FromDate { get; set; }
        public virtual DateTime? ToDate { get; set; }
        public virtual int? StatusId { get; set; }
        public virtual int? IssuingAgencyId { get; set; }
        public virtual SearchOrderBy OrderBy { get; set; }
        public virtual bool? IsParty { get; set; }
    }

    public partial class SearchResponse
        : IResponseRequest
    {
        public SearchResponse()
        {
            Data = new List<DocumentSearchResultItem>{};
        }

        public virtual long TotalCount { get; set; }
        public virtual int Code { get; set; }
        public virtual List<DocumentSearchResultItem> Data { get; set; }
        public virtual string Message { get; set; }
    }

}

namespace tvpl.data.Constant
{
    public enum DocumentSearchStage
    {
        All,
        AllProcessing,
        Draft,
        PendingApproval,
        IsRevisionRequested,
        PendingCompilation,
        PendingReport,
        Published,
        Active,
        InActive,
    }

    public enum SearchOrderBy
    {
        UpdatedDateDesc,
        PublishDateDesc,
    }

}

namespace tvpl.data.Models
{
    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; }
    }

}

C# ReportSearch 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 /report/search HTTP/1.1 
Host: etc-api.vsmlab.vn 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	columns: 
	[
		String
	],
	title: String,
	typeId: 0,
	groupId: 0,
	subjectId: 0,
	isUrgent: False,
	documentSearchStage: All,
	isInternal: False,
	fromDate: "0001-01-01T00:00:00.0000000+07:06",
	toDate: "0001-01-01T00:00:00.0000000+07:06",
	statusId: 0,
	issuingAgencyId: 0,
	orderBy: UpdatedDateDesc,
	isParty: False,
	page: 1,
	limit: 10
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	totalCount: 0,
	code: 0,
	data: 
	[
		{
			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
		}
	],
	message: String
}