<back to all web services

ContainerInfoMessage

The following routes are available for this service:
POST/RestApi/sitefinity/inlineediting/containersInfo
import 'package:servicestack/servicestack.dart';

class LifecycleStatusModel implements IConvertible
{
    String? DisplayStatus;
    bool? IsAdmin;
    bool? IsEditable;
    bool? IsStatusEditable;
    bool? IsLocked;
    bool? IsPublished;
    bool? IsLockedByMe;
    String? LockedByUsername;
    String? WorkflowStatus;

    LifecycleStatusModel({this.DisplayStatus,this.IsAdmin,this.IsEditable,this.IsStatusEditable,this.IsLocked,this.IsPublished,this.IsLockedByMe,this.LockedByUsername,this.WorkflowStatus});
    LifecycleStatusModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        DisplayStatus = json['DisplayStatus'];
        IsAdmin = json['IsAdmin'];
        IsEditable = json['IsEditable'];
        IsStatusEditable = json['IsStatusEditable'];
        IsLocked = json['IsLocked'];
        IsPublished = json['IsPublished'];
        IsLockedByMe = json['IsLockedByMe'];
        LockedByUsername = json['LockedByUsername'];
        WorkflowStatus = json['WorkflowStatus'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'DisplayStatus': DisplayStatus,
        'IsAdmin': IsAdmin,
        'IsEditable': IsEditable,
        'IsStatusEditable': IsStatusEditable,
        'IsLocked': IsLocked,
        'IsPublished': IsPublished,
        'IsLockedByMe': IsLockedByMe,
        'LockedByUsername': LockedByUsername,
        'WorkflowStatus': WorkflowStatus
    };

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

class FieldModel implements IConvertible
{
    String? Name;
    String? Required;
    String? MinDate;
    String? MaxDate;
    int? MinLength;
    int? MaxLength;
    String? Pattern;
    dynamic? MinValue;
    dynamic? MaxValue;
    String? RequiredViolationMessage;
    String? MinLengthViolationMessage;
    String? MaxLengthViolationMessage;

    FieldModel({this.Name,this.Required,this.MinDate,this.MaxDate,this.MinLength,this.MaxLength,this.Pattern,this.MinValue,this.MaxValue,this.RequiredViolationMessage,this.MinLengthViolationMessage,this.MaxLengthViolationMessage});
    FieldModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Name = json['Name'];
        Required = json['Required'];
        MinDate = json['MinDate'];
        MaxDate = json['MaxDate'];
        MinLength = json['MinLength'];
        MaxLength = json['MaxLength'];
        Pattern = json['Pattern'];
        MinValue = JsonConverters.fromJson(json['MinValue'],'dynamic',context!);
        MaxValue = JsonConverters.fromJson(json['MaxValue'],'dynamic',context!);
        RequiredViolationMessage = json['RequiredViolationMessage'];
        MinLengthViolationMessage = json['MinLengthViolationMessage'];
        MaxLengthViolationMessage = json['MaxLengthViolationMessage'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Required': Required,
        'MinDate': MinDate,
        'MaxDate': MaxDate,
        'MinLength': MinLength,
        'MaxLength': MaxLength,
        'Pattern': Pattern,
        'MinValue': JsonConverters.toJson(MinValue,'dynamic',context!),
        'MaxValue': JsonConverters.toJson(MaxValue,'dynamic',context!),
        'RequiredViolationMessage': RequiredViolationMessage,
        'MinLengthViolationMessage': MinLengthViolationMessage,
        'MaxLengthViolationMessage': MaxLengthViolationMessage
    };

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

class ContainerInfoModel implements IConvertible
{
    String? ItemId;
    String? ItemType;
    String? DisplayType;
    String? Provider;
    LifecycleStatusModel? ItemStatus;
    bool? IsPageControl;
    String? DetailsViewUrl;
    List<FieldModel>? Fields;

    ContainerInfoModel({this.ItemId,this.ItemType,this.DisplayType,this.Provider,this.ItemStatus,this.IsPageControl,this.DetailsViewUrl,this.Fields});
    ContainerInfoModel.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ItemId = json['ItemId'];
        ItemType = json['ItemType'];
        DisplayType = json['DisplayType'];
        Provider = json['Provider'];
        ItemStatus = JsonConverters.fromJson(json['ItemStatus'],'LifecycleStatusModel',context!);
        IsPageControl = json['IsPageControl'];
        DetailsViewUrl = json['DetailsViewUrl'];
        Fields = JsonConverters.fromJson(json['Fields'],'List<FieldModel>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ItemId': ItemId,
        'ItemType': ItemType,
        'DisplayType': DisplayType,
        'Provider': Provider,
        'ItemStatus': JsonConverters.toJson(ItemStatus,'LifecycleStatusModel',context!),
        'IsPageControl': IsPageControl,
        'DetailsViewUrl': DetailsViewUrl,
        'Fields': JsonConverters.toJson(Fields,'List<FieldModel>',context!)
    };

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

class ContainerInfoMessage implements IConvertible
{
    String? PageId;
    String? PageTitle;
    List<ContainerInfoModel>? ContainersInfo;

    ContainerInfoMessage({this.PageId,this.PageTitle,this.ContainersInfo});
    ContainerInfoMessage.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        PageId = json['PageId'];
        PageTitle = json['PageTitle'];
        ContainersInfo = JsonConverters.fromJson(json['ContainersInfo'],'List<ContainerInfoModel>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'PageId': PageId,
        'PageTitle': PageTitle,
        'ContainersInfo': JsonConverters.toJson(ContainersInfo,'List<ContainerInfoModel>',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'www.asg.com.au', types: <String, TypeInfo> {
    'LifecycleStatusModel': TypeInfo(TypeOf.Class, create:() => LifecycleStatusModel()),
    'FieldModel': TypeInfo(TypeOf.Class, create:() => FieldModel()),
    'ContainerInfoModel': TypeInfo(TypeOf.Class, create:() => ContainerInfoModel()),
    'List<FieldModel>': TypeInfo(TypeOf.Class, create:() => <FieldModel>[]),
    'ContainerInfoMessage': TypeInfo(TypeOf.Class, create:() => ContainerInfoMessage()),
    'List<ContainerInfoModel>': TypeInfo(TypeOf.Class, create:() => <ContainerInfoModel>[]),
});

Dart ContainerInfoMessage 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 /RestApi/sitefinity/inlineediting/containersInfo HTTP/1.1 
Host: www.asg.com.au 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	PageId: String,
	PageTitle: String,
	ContainersInfo: 
	[
		{
			ItemId: String,
			ItemType: String,
			DisplayType: String,
			Provider: String,
			ItemStatus: 
			{
				DisplayStatus: String,
				IsAdmin: False,
				IsEditable: False,
				IsStatusEditable: False,
				IsLocked: False,
				IsPublished: False,
				IsLockedByMe: False,
				LockedByUsername: String,
				WorkflowStatus: String
			},
			IsPageControl: False,
			DetailsViewUrl: String,
			Fields: 
			[
				{
					Name: String,
					Required: String,
					MinDate: String,
					MaxDate: String,
					MinLength: 0,
					MaxLength: 0,
					Pattern: String,
					MinValue: {},
					MaxValue: {},
					RequiredViolationMessage: String,
					MinLengthViolationMessage: String,
					MaxLengthViolationMessage: String
				}
			]
		}
	]
}