| POST | /document/stat-search-by-group |
|---|
import 'package:servicestack/servicestack.dart';
enum DocumentSearchStage
{
All,
AllProcessing,
Draft,
PendingApproval,
IsRevisionRequested,
PendingCompilation,
PendingReport,
Published,
Active,
InActive,
}
class SimpleSearchFilter implements IConvertible
{
String? title;
int? groupId;
int? subjectId;
bool? isUrgent;
DocumentSearchStage? documentSearchStage;
bool? isInternal;
DateTime? fromDate;
DateTime? toDate;
int? typeId;
int? statusId;
int? issuingAgencyId;
bool? isParty;
SimpleSearchFilter({this.title,this.groupId,this.subjectId,this.isUrgent,this.documentSearchStage,this.isInternal,this.fromDate,this.toDate,this.typeId,this.statusId,this.issuingAgencyId,this.isParty});
SimpleSearchFilter.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
title = json['title'];
groupId = json['groupId'];
subjectId = json['subjectId'];
isUrgent = json['isUrgent'];
documentSearchStage = JsonConverters.fromJson(json['documentSearchStage'],'DocumentSearchStage',context!);
isInternal = json['isInternal'];
fromDate = JsonConverters.fromJson(json['fromDate'],'DateTime',context!);
toDate = JsonConverters.fromJson(json['toDate'],'DateTime',context!);
typeId = json['typeId'];
statusId = json['statusId'];
issuingAgencyId = json['issuingAgencyId'];
isParty = json['isParty'];
return this;
}
Map<String, dynamic> toJson() => {
'title': title,
'groupId': groupId,
'subjectId': subjectId,
'isUrgent': isUrgent,
'documentSearchStage': JsonConverters.toJson(documentSearchStage,'DocumentSearchStage',context!),
'isInternal': isInternal,
'fromDate': JsonConverters.toJson(fromDate,'DateTime',context!),
'toDate': JsonConverters.toJson(toDate,'DateTime',context!),
'typeId': typeId,
'statusId': statusId,
'issuingAgencyId': issuingAgencyId,
'isParty': isParty
};
getTypeName() => "SimpleSearchFilter";
TypeContext? context = _ctx;
}
class DocumentSearchResultItem implements IConvertible
{
String? title;
String? description;
String? owner;
int? documentPolicyId;
int? updateDocumentId;
DateTime? effectBeginDate;
DateTime? effectEndDate;
int? issuingAgencyId;
int? subjectId;
String? signBy;
DateTime? signDate;
DateTime? updatedAt;
int? statusId;
bool? isInternal;
String? documentNumber;
String? documentCode;
bool? isUrgent;
int? id;
String? reasonReturn;
int? accountId;
int? approverId;
// @StringLength(500)
String? updatedBy;
// @StringLength(500)
String? createdBy;
bool? isParty;
bool? isRevisionRequested;
bool? isPrivate;
int? departmentId;
DateTime? publicationDate;
int? processStatusId;
int? documentTypeId;
int? documentGroupId;
String? 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;
bool? isActive;
int? stepOrder;
int? stepCount;
DocumentSearchResultItem({this.title,this.description,this.owner,this.documentPolicyId,this.updateDocumentId,this.effectBeginDate,this.effectEndDate,this.issuingAgencyId,this.subjectId,this.signBy,this.signDate,this.updatedAt,this.statusId,this.isInternal,this.documentNumber,this.documentCode,this.isUrgent,this.id,this.reasonReturn,this.accountId,this.approverId,this.updatedBy,this.createdBy,this.isParty,this.isRevisionRequested,this.isPrivate,this.departmentId,this.publicationDate,this.processStatusId,this.documentTypeId,this.documentGroupId,this.accountName,this.acceptAccountName,this.documentGroupText,this.processStatusText,this.documentTypeText,this.departmentText,this.statusText,this.issuingAgencyText,this.subjectText,this.comment,this.submitComment,this.fullFile,this.parthFile,this.isActive,this.stepOrder,this.stepCount});
DocumentSearchResultItem.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
title = json['title'];
description = json['description'];
owner = json['owner'];
documentPolicyId = json['documentPolicyId'];
updateDocumentId = json['updateDocumentId'];
effectBeginDate = JsonConverters.fromJson(json['effectBeginDate'],'DateTime',context!);
effectEndDate = JsonConverters.fromJson(json['effectEndDate'],'DateTime',context!);
issuingAgencyId = json['issuingAgencyId'];
subjectId = json['subjectId'];
signBy = json['signBy'];
signDate = JsonConverters.fromJson(json['signDate'],'DateTime',context!);
updatedAt = JsonConverters.fromJson(json['updatedAt'],'DateTime',context!);
statusId = json['statusId'];
isInternal = json['isInternal'];
documentNumber = json['documentNumber'];
documentCode = json['documentCode'];
isUrgent = json['isUrgent'];
id = json['id'];
reasonReturn = json['reasonReturn'];
accountId = json['accountId'];
approverId = json['approverId'];
updatedBy = json['updatedBy'];
createdBy = json['createdBy'];
isParty = json['isParty'];
isRevisionRequested = json['isRevisionRequested'];
isPrivate = json['isPrivate'];
departmentId = json['departmentId'];
publicationDate = JsonConverters.fromJson(json['publicationDate'],'DateTime',context!);
processStatusId = json['processStatusId'];
documentTypeId = json['documentTypeId'];
documentGroupId = json['documentGroupId'];
accountName = json['accountName'];
acceptAccountName = json['acceptAccountName'];
documentGroupText = json['documentGroupText'];
processStatusText = json['processStatusText'];
documentTypeText = json['documentTypeText'];
departmentText = json['departmentText'];
statusText = json['statusText'];
issuingAgencyText = json['issuingAgencyText'];
subjectText = json['subjectText'];
comment = json['comment'];
submitComment = json['submitComment'];
fullFile = json['fullFile'];
parthFile = json['parthFile'];
isActive = json['isActive'];
stepOrder = json['stepOrder'];
stepCount = json['stepCount'];
return this;
}
Map<String, dynamic> toJson() => {
'title': title,
'description': description,
'owner': owner,
'documentPolicyId': documentPolicyId,
'updateDocumentId': updateDocumentId,
'effectBeginDate': JsonConverters.toJson(effectBeginDate,'DateTime',context!),
'effectEndDate': JsonConverters.toJson(effectEndDate,'DateTime',context!),
'issuingAgencyId': issuingAgencyId,
'subjectId': subjectId,
'signBy': signBy,
'signDate': JsonConverters.toJson(signDate,'DateTime',context!),
'updatedAt': JsonConverters.toJson(updatedAt,'DateTime',context!),
'statusId': statusId,
'isInternal': isInternal,
'documentNumber': documentNumber,
'documentCode': documentCode,
'isUrgent': isUrgent,
'id': id,
'reasonReturn': reasonReturn,
'accountId': accountId,
'approverId': approverId,
'updatedBy': updatedBy,
'createdBy': createdBy,
'isParty': isParty,
'isRevisionRequested': isRevisionRequested,
'isPrivate': isPrivate,
'departmentId': departmentId,
'publicationDate': JsonConverters.toJson(publicationDate,'DateTime',context!),
'processStatusId': processStatusId,
'documentTypeId': documentTypeId,
'documentGroupId': documentGroupId,
'accountName': accountName,
'acceptAccountName': acceptAccountName,
'documentGroupText': documentGroupText,
'processStatusText': processStatusText,
'documentTypeText': documentTypeText,
'departmentText': departmentText,
'statusText': statusText,
'issuingAgencyText': issuingAgencyText,
'subjectText': subjectText,
'comment': comment,
'submitComment': submitComment,
'fullFile': fullFile,
'parthFile': parthFile,
'isActive': isActive,
'stepOrder': stepOrder,
'stepCount': stepCount
};
getTypeName() => "DocumentSearchResultItem";
TypeContext? context = _ctx;
}
class SearchResponse implements IResponseRequest, IConvertible
{
int? totalCount;
int? code;
List<DocumentSearchResultItem>? data;
String? message;
SearchResponse({this.totalCount,this.code,this.data,this.message});
SearchResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
totalCount = json['totalCount'];
code = json['code'];
data = JsonConverters.fromJson(json['data'],'List<DocumentSearchResultItem>',context!);
message = json['message'];
return this;
}
Map<String, dynamic> toJson() => {
'totalCount': totalCount,
'code': code,
'data': JsonConverters.toJson(data,'List<DocumentSearchResultItem>',context!),
'message': message
};
getTypeName() => "SearchResponse";
TypeContext? context = _ctx;
}
class StatDocByGroupRequest extends SimpleSearchFilter implements IPost, IConvertible
{
StatDocByGroupRequest();
StatDocByGroupRequest.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "StatDocByGroupRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'etc_api.vsmlab.vn', types: <String, TypeInfo> {
'DocumentSearchStage': TypeInfo(TypeOf.Enum, enumValues:DocumentSearchStage.values),
'SimpleSearchFilter': TypeInfo(TypeOf.Class, create:() => SimpleSearchFilter()),
'DocumentSearchResultItem': TypeInfo(TypeOf.Class, create:() => DocumentSearchResultItem()),
'SearchResponse': TypeInfo(TypeOf.Class, create:() => SearchResponse()),
'List<DocumentSearchResultItem>': TypeInfo(TypeOf.Class, create:() => <DocumentSearchResultItem>[]),
'StatDocByGroupRequest': TypeInfo(TypeOf.Class, create:() => StatDocByGroupRequest()),
});
Dart StatDocByGroupRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /document/stat-search-by-group HTTP/1.1
Host: etc-api.vsmlab.vn
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<StatDocByGroupRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/tvpl.api.ServiceModel">
<DocumentSearchStage>All</DocumentSearchStage>
<FromDate>0001-01-01T00:00:00</FromDate>
<GroupId>0</GroupId>
<IsInternal>false</IsInternal>
<IsParty>false</IsParty>
<IsUrgent>false</IsUrgent>
<IssuingAgencyId>0</IssuingAgencyId>
<StatusId>0</StatusId>
<SubjectId>0</SubjectId>
<Title>String</Title>
<ToDate>0001-01-01T00:00:00</ToDate>
<TypeId>0</TypeId>
</StatDocByGroupRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<SearchResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/tvpl.api.ServiceModel">
<Code>0</Code>
<Data xmlns:d2p1="http://schemas.datacontract.org/2004/07/tvpl.data.Models">
<d2p1:DocumentSearchResultItem>
<d2p1:AcceptAccountName>String</d2p1:AcceptAccountName>
<d2p1:AccountId>0</d2p1:AccountId>
<d2p1:AccountName>String</d2p1:AccountName>
<d2p1:ApproverId>0</d2p1:ApproverId>
<d2p1:Comment>String</d2p1:Comment>
<d2p1:CreatedBy>String</d2p1:CreatedBy>
<d2p1:DepartmentId>0</d2p1:DepartmentId>
<d2p1:DepartmentText>String</d2p1:DepartmentText>
<d2p1:Description>String</d2p1:Description>
<d2p1:DocumentCode>String</d2p1:DocumentCode>
<d2p1:DocumentGroupId>0</d2p1:DocumentGroupId>
<d2p1:DocumentGroupText>String</d2p1:DocumentGroupText>
<d2p1:DocumentNumber>String</d2p1:DocumentNumber>
<d2p1:DocumentPolicyId>0</d2p1:DocumentPolicyId>
<d2p1:DocumentTypeId>0</d2p1:DocumentTypeId>
<d2p1:DocumentTypeText>String</d2p1:DocumentTypeText>
<d2p1:EffectBeginDate>0001-01-01T00:00:00</d2p1:EffectBeginDate>
<d2p1:EffectEndDate>0001-01-01T00:00:00</d2p1:EffectEndDate>
<d2p1:FullFile>String</d2p1:FullFile>
<d2p1:Id>0</d2p1:Id>
<d2p1:IsActive>false</d2p1:IsActive>
<d2p1:IsInternal>false</d2p1:IsInternal>
<d2p1:IsParty>false</d2p1:IsParty>
<d2p1:IsPrivate>false</d2p1:IsPrivate>
<d2p1:IsRevisionRequested>false</d2p1:IsRevisionRequested>
<d2p1:IsUrgent>false</d2p1:IsUrgent>
<d2p1:IssuingAgencyId>0</d2p1:IssuingAgencyId>
<d2p1:IssuingAgencyText>String</d2p1:IssuingAgencyText>
<d2p1:Owner>String</d2p1:Owner>
<d2p1:ParthFile>String</d2p1:ParthFile>
<d2p1:ProcessStatusId>0</d2p1:ProcessStatusId>
<d2p1:ProcessStatusText>String</d2p1:ProcessStatusText>
<d2p1:PublicationDate>0001-01-01T00:00:00</d2p1:PublicationDate>
<d2p1:ReasonReturn>String</d2p1:ReasonReturn>
<d2p1:SignBy>String</d2p1:SignBy>
<d2p1:SignDate>0001-01-01T00:00:00</d2p1:SignDate>
<d2p1:StatusId>0</d2p1:StatusId>
<d2p1:StatusText>String</d2p1:StatusText>
<d2p1:StepCount>0</d2p1:StepCount>
<d2p1:StepOrder>0</d2p1:StepOrder>
<d2p1:SubjectId>0</d2p1:SubjectId>
<d2p1:SubjectText>String</d2p1:SubjectText>
<d2p1:SubmitComment>String</d2p1:SubmitComment>
<d2p1:Title>String</d2p1:Title>
<d2p1:UpdateDocumentId>0</d2p1:UpdateDocumentId>
<d2p1:UpdatedAt>0001-01-01T00:00:00</d2p1:UpdatedAt>
<d2p1:UpdatedBy>String</d2p1:UpdatedBy>
</d2p1:DocumentSearchResultItem>
</Data>
<Message>String</Message>
<TotalCount>0</TotalCount>
</SearchResponse>