Trendsic Platform Service

<back to all web services

MarkupPageRequest

Requires Authentication
The following routes are available for this service:
GET,PUT,OPTIONS/v1/markup/{AttachmentId}/{VersionNo}/{PageIndex}
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class DocumentMarkupLayer implements IConvertible
{
    int? DocumentMarkupID;
    String? AttachmentId;
    int? VersionNo;
    int? PageIndex;
    String? AuthorUserId;
    String? AuthorName;
    String? LayerJson;
    int? ShapeCount;
    bool? IsPublished;
    DateTime? CreatedAt;
    DateTime? UpdatedAt;
    bool? IsMine;

    DocumentMarkupLayer({this.DocumentMarkupID,this.AttachmentId,this.VersionNo,this.PageIndex,this.AuthorUserId,this.AuthorName,this.LayerJson,this.ShapeCount,this.IsPublished,this.CreatedAt,this.UpdatedAt,this.IsMine});
    DocumentMarkupLayer.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        DocumentMarkupID = json['DocumentMarkupID'];
        AttachmentId = json['AttachmentId'];
        VersionNo = json['VersionNo'];
        PageIndex = json['PageIndex'];
        AuthorUserId = json['AuthorUserId'];
        AuthorName = json['AuthorName'];
        LayerJson = json['LayerJson'];
        ShapeCount = json['ShapeCount'];
        IsPublished = json['IsPublished'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!);
        IsMine = json['IsMine'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'DocumentMarkupID': DocumentMarkupID,
        'AttachmentId': AttachmentId,
        'VersionNo': VersionNo,
        'PageIndex': PageIndex,
        'AuthorUserId': AuthorUserId,
        'AuthorName': AuthorName,
        'LayerJson': LayerJson,
        'ShapeCount': ShapeCount,
        'IsPublished': IsPublished,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
        'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!),
        'IsMine': IsMine
    };

    getTypeName() => "DocumentMarkupLayer";
    TypeContext? context = _ctx;
}

class DocumentMarkupLink implements IConvertible
{
    int? DocumentMarkupLinkID;
    String? AttachmentId;
    int? VersionNo;
    int? PageIndex;
    String? ShapeId;
    String? EntityType;
    int? EntityID;
    String? EntityNo;
    String? CreatedBy;
    DateTime? CreatedAt;

    DocumentMarkupLink({this.DocumentMarkupLinkID,this.AttachmentId,this.VersionNo,this.PageIndex,this.ShapeId,this.EntityType,this.EntityID,this.EntityNo,this.CreatedBy,this.CreatedAt});
    DocumentMarkupLink.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        DocumentMarkupLinkID = json['DocumentMarkupLinkID'];
        AttachmentId = json['AttachmentId'];
        VersionNo = json['VersionNo'];
        PageIndex = json['PageIndex'];
        ShapeId = json['ShapeId'];
        EntityType = json['EntityType'];
        EntityID = json['EntityID'];
        EntityNo = json['EntityNo'];
        CreatedBy = json['CreatedBy'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'DocumentMarkupLinkID': DocumentMarkupLinkID,
        'AttachmentId': AttachmentId,
        'VersionNo': VersionNo,
        'PageIndex': PageIndex,
        'ShapeId': ShapeId,
        'EntityType': EntityType,
        'EntityID': EntityID,
        'EntityNo': EntityNo,
        'CreatedBy': CreatedBy,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!)
    };

    getTypeName() => "DocumentMarkupLink";
    TypeContext? context = _ctx;
}

class MarkupPageResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    String? AttachmentId;
    int? VersionNo;
    int? PageIndex;
    List<DocumentMarkupLayer>? Layers = [];
    List<DocumentMarkupLink>? Links = [];
    DocumentMarkupLayer? Mine;
    bool? CanCreatePunch;
    bool? CanCreateRfi;
    int? ProjectID;

    MarkupPageResponse({this.ResponseStatus,this.AttachmentId,this.VersionNo,this.PageIndex,this.Layers,this.Links,this.Mine,this.CanCreatePunch,this.CanCreateRfi,this.ProjectID});
    MarkupPageResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        AttachmentId = json['AttachmentId'];
        VersionNo = json['VersionNo'];
        PageIndex = json['PageIndex'];
        Layers = JsonConverters.fromJson(json['Layers'],'List<DocumentMarkupLayer>',context!);
        Links = JsonConverters.fromJson(json['Links'],'List<DocumentMarkupLink>',context!);
        Mine = JsonConverters.fromJson(json['Mine'],'DocumentMarkupLayer',context!);
        CanCreatePunch = json['CanCreatePunch'];
        CanCreateRfi = json['CanCreateRfi'];
        ProjectID = json['ProjectID'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'AttachmentId': AttachmentId,
        'VersionNo': VersionNo,
        'PageIndex': PageIndex,
        'Layers': JsonConverters.toJson(Layers,'List<DocumentMarkupLayer>',context!),
        'Links': JsonConverters.toJson(Links,'List<DocumentMarkupLink>',context!),
        'Mine': JsonConverters.toJson(Mine,'DocumentMarkupLayer',context!),
        'CanCreatePunch': CanCreatePunch,
        'CanCreateRfi': CanCreateRfi,
        'ProjectID': ProjectID
    };

    getTypeName() => "MarkupPageResponse";
    TypeContext? context = _ctx;
}

class MarkupPageRequest implements IConvertible
{
    String? AttachmentId;
    int? VersionNo;
    int? PageIndex;
    String? LayerJson;

    MarkupPageRequest({this.AttachmentId,this.VersionNo,this.PageIndex,this.LayerJson});
    MarkupPageRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AttachmentId = json['AttachmentId'];
        VersionNo = json['VersionNo'];
        PageIndex = json['PageIndex'];
        LayerJson = json['LayerJson'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AttachmentId': AttachmentId,
        'VersionNo': VersionNo,
        'PageIndex': PageIndex,
        'LayerJson': LayerJson
    };

    getTypeName() => "MarkupPageRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'DocumentMarkupLayer': TypeInfo(TypeOf.Class, create:() => DocumentMarkupLayer()),
    'DocumentMarkupLink': TypeInfo(TypeOf.Class, create:() => DocumentMarkupLink()),
    'MarkupPageResponse': TypeInfo(TypeOf.Class, create:() => MarkupPageResponse()),
    'List<DocumentMarkupLayer>': TypeInfo(TypeOf.Class, create:() => <DocumentMarkupLayer>[]),
    'List<DocumentMarkupLink>': TypeInfo(TypeOf.Class, create:() => <DocumentMarkupLink>[]),
    'MarkupPageRequest': TypeInfo(TypeOf.Class, create:() => MarkupPageRequest()),
});

Dart MarkupPageRequest 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.

PUT /v1/markup/{AttachmentId}/{VersionNo}/{PageIndex} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	AttachmentId: 00000000000000000000000000000000,
	VersionNo: 0,
	PageIndex: 0,
	LayerJson: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	AttachmentId: 00000000000000000000000000000000,
	VersionNo: 0,
	PageIndex: 0,
	Layers: 
	[
		{
			DocumentMarkupID: 0,
			AttachmentId: 00000000000000000000000000000000,
			VersionNo: 0,
			PageIndex: 0,
			AuthorUserId: String,
			AuthorName: String,
			LayerJson: String,
			ShapeCount: 0,
			IsPublished: False,
			CreatedAt: 0001-01-01,
			UpdatedAt: 0001-01-01,
			IsMine: False
		}
	],
	Links: 
	[
		{
			DocumentMarkupLinkID: 0,
			AttachmentId: 00000000000000000000000000000000,
			VersionNo: 0,
			PageIndex: 0,
			ShapeId: String,
			EntityType: String,
			EntityID: 0,
			EntityNo: String,
			CreatedBy: String,
			CreatedAt: 0001-01-01
		}
	],
	Mine: 
	{
		DocumentMarkupID: 0,
		AttachmentId: 00000000000000000000000000000000,
		VersionNo: 0,
		PageIndex: 0,
		AuthorUserId: String,
		AuthorName: String,
		LayerJson: String,
		ShapeCount: 0,
		IsPublished: False,
		CreatedAt: 0001-01-01,
		UpdatedAt: 0001-01-01,
		IsMine: False
	},
	CanCreatePunch: False,
	CanCreateRfi: False,
	ProjectID: 0
}