import 'package:servicestack/servicestack.dart';
abstract class UserOrGroup
{
int? ID;
String? Title;
bool? IsChecked;
String? Image;
UserOrGroup({this.ID,this.Title,this.IsChecked,this.Image});
UserOrGroup.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ID = json['ID'];
Title = json['Title'];
IsChecked = json['IsChecked'];
Image = json['Image'];
return this;
}
Map<String, dynamic> toJson() => {
'ID': ID,
'Title': Title,
'IsChecked': IsChecked,
'Image': Image
};
getTypeName() => "UserOrGroup";
TypeContext? context = _ctx;
}
class User extends UserOrGroup implements IConvertible
{
String? Image;
User({this.Image});
User.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Image = json['Image'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Image': Image
});
getTypeName() => "User";
TypeContext? context = _ctx;
}
class Group extends UserOrGroup implements IConvertible
{
String? Image;
Group({this.Image});
Group.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Image = json['Image'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Image': Image
});
getTypeName() => "Group";
TypeContext? context = _ctx;
}
class WorkflowTaskDelay implements IConvertible
{
DateTime? DelayDate;
String? Reason;
WorkflowTaskDelay({this.DelayDate,this.Reason});
WorkflowTaskDelay.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
DelayDate = JsonConverters.fromJson(json['DelayDate'],'DateTime',context!);
Reason = json['Reason'];
return this;
}
Map<String, dynamic> toJson() => {
'DelayDate': JsonConverters.toJson(DelayDate,'DateTime',context!),
'Reason': Reason
};
getTypeName() => "WorkflowTaskDelay";
TypeContext? context = _ctx;
}
class WorkflowTaskReason implements IConvertible
{
String? Reason;
bool? Required;
WorkflowTaskReason({this.Reason,this.Required});
WorkflowTaskReason.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Reason = json['Reason'];
Required = json['Required'];
return this;
}
Map<String, dynamic> toJson() => {
'Reason': Reason,
'Required': Required
};
getTypeName() => "WorkflowTaskReason";
TypeContext? context = _ctx;
}
class WorkflowTaskAdhocTransition implements IConvertible
{
String? ID;
String? Title;
bool? AssignmentAllowed;
bool? AssignmentRequired;
int? UserEnvironment;
List<User>? Users;
List<Group>? Groups;
WorkflowTaskDelay? Delay;
WorkflowTaskReason? Reason;
List<UserOrGroup>? UsersOrGroups;
String? Value;
WorkflowTaskAdhocTransition({this.ID,this.Title,this.AssignmentAllowed,this.AssignmentRequired,this.UserEnvironment,this.Users,this.Groups,this.Delay,this.Reason,this.UsersOrGroups,this.Value});
WorkflowTaskAdhocTransition.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ID = json['ID'];
Title = json['Title'];
AssignmentAllowed = json['AssignmentAllowed'];
AssignmentRequired = json['AssignmentRequired'];
UserEnvironment = json['UserEnvironment'];
Users = JsonConverters.fromJson(json['Users'],'List<User>',context!);
Groups = JsonConverters.fromJson(json['Groups'],'List<Group>',context!);
Delay = JsonConverters.fromJson(json['Delay'],'WorkflowTaskDelay',context!);
Reason = JsonConverters.fromJson(json['Reason'],'WorkflowTaskReason',context!);
UsersOrGroups = JsonConverters.fromJson(json['UsersOrGroups'],'List<UserOrGroup>',context!);
Value = json['Value'];
return this;
}
Map<String, dynamic> toJson() => {
'ID': ID,
'Title': Title,
'AssignmentAllowed': AssignmentAllowed,
'AssignmentRequired': AssignmentRequired,
'UserEnvironment': UserEnvironment,
'Users': JsonConverters.toJson(Users,'List<User>',context!),
'Groups': JsonConverters.toJson(Groups,'List<Group>',context!),
'Delay': JsonConverters.toJson(Delay,'WorkflowTaskDelay',context!),
'Reason': JsonConverters.toJson(Reason,'WorkflowTaskReason',context!),
'UsersOrGroups': JsonConverters.toJson(UsersOrGroups,'List<UserOrGroup>',context!),
'Value': Value
};
getTypeName() => "WorkflowTaskAdhocTransition";
TypeContext? context = _ctx;
}
class AdhocTransitionDetails implements IConvertible
{
List<WorkflowTaskAdhocTransition>? AdhocTransitions;
AdhocTransitionDetails({this.AdhocTransitions});
AdhocTransitionDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
AdhocTransitions = JsonConverters.fromJson(json['AdhocTransitions'],'List<WorkflowTaskAdhocTransition>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'AdhocTransitions': JsonConverters.toJson(AdhocTransitions,'List<WorkflowTaskAdhocTransition>',context!)
};
getTypeName() => "AdhocTransitionDetails";
TypeContext? context = _ctx;
}
class WorkflowTaskActionComment implements IConvertible
{
String? Comment;
bool? Required;
WorkflowTaskActionComment({this.Comment,this.Required});
WorkflowTaskActionComment.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Comment = json['Comment'];
Required = json['Required'];
return this;
}
Map<String, dynamic> toJson() => {
'Comment': Comment,
'Required': Required
};
getTypeName() => "WorkflowTaskActionComment";
TypeContext? context = _ctx;
}
class SideStepDetails extends AdhocTransitionDetails implements IConvertible
{
User? Coordinator;
WorkflowTaskActionComment? Comment;
bool? Urgent;
SideStepDetails({this.Coordinator,this.Comment,this.Urgent});
SideStepDetails.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
Coordinator = JsonConverters.fromJson(json['Coordinator'],'User',context!);
Comment = JsonConverters.fromJson(json['Comment'],'WorkflowTaskActionComment',context!);
Urgent = json['Urgent'];
return this;
}
Map<String, dynamic> toJson() => super.toJson()..addAll({
'Coordinator': JsonConverters.toJson(Coordinator,'User',context!),
'Comment': JsonConverters.toJson(Comment,'WorkflowTaskActionComment',context!),
'Urgent': Urgent
});
getTypeName() => "SideStepDetails";
TypeContext? context = _ctx;
}
class StartSideStep implements IConvertible
{
int? ProcessID;
int? WorkflowTaskID;
SideStepDetails? Details;
StartSideStep({this.ProcessID,this.WorkflowTaskID,this.Details});
StartSideStep.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ProcessID = json['ProcessID'];
WorkflowTaskID = json['WorkflowTaskID'];
Details = JsonConverters.fromJson(json['Details'],'SideStepDetails',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ProcessID': ProcessID,
'WorkflowTaskID': WorkflowTaskID,
'Details': JsonConverters.toJson(Details,'SideStepDetails',context!)
};
getTypeName() => "StartSideStep";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'digiofficeapigateway.deltares.nl', types: <String, TypeInfo> {
'UserOrGroup': TypeInfo(TypeOf.AbstractClass),
'User': TypeInfo(TypeOf.Class, create:() => User()),
'Group': TypeInfo(TypeOf.Class, create:() => Group()),
'WorkflowTaskDelay': TypeInfo(TypeOf.Class, create:() => WorkflowTaskDelay()),
'WorkflowTaskReason': TypeInfo(TypeOf.Class, create:() => WorkflowTaskReason()),
'WorkflowTaskAdhocTransition': TypeInfo(TypeOf.Class, create:() => WorkflowTaskAdhocTransition()),
'List<User>': TypeInfo(TypeOf.Class, create:() => <User>[]),
'List<Group>': TypeInfo(TypeOf.Class, create:() => <Group>[]),
'List<UserOrGroup>': TypeInfo(TypeOf.Class, create:() => <UserOrGroup>[]),
'AdhocTransitionDetails': TypeInfo(TypeOf.Class, create:() => AdhocTransitionDetails()),
'List<WorkflowTaskAdhocTransition>': TypeInfo(TypeOf.Class, create:() => <WorkflowTaskAdhocTransition>[]),
'WorkflowTaskActionComment': TypeInfo(TypeOf.Class, create:() => WorkflowTaskActionComment()),
'SideStepDetails': TypeInfo(TypeOf.Class, create:() => SideStepDetails()),
'StartSideStep': TypeInfo(TypeOf.Class, create:() => StartSideStep()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /csv/oneway/StartSideStep HTTP/1.1
Host: digiofficeapigateway.deltares.nl
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"ProcessID":0,"WorkflowTaskID":0,"Details":{"Coordinator":{"Image":"Icons/User","ID":0,"Title":"String","IsChecked":false},"Comment":{"Comment":"String","Required":false},"Urgent":false,"AdhocTransitions":[{"ID":"00000000-0000-0000-0000-000000000000","Title":"String","AssignmentAllowed":false,"AssignmentRequired":false,"UserEnvironment":0,"Users":[{"Image":"Icons/User","ID":0,"Title":"String","IsChecked":false}],"Groups":[{"Image":"Icons/Group","ID":0,"Title":"String","IsChecked":false}],"Delay":{"DelayDate":"0001-01-01T00:00:00.0000000","Reason":"String"},"Reason":{"Reason":"String","Required":false},"UsersOrGroups":[{"__type":"IDB.API.DTO.User, IDB.API.DTO","Image":"Icons/User","ID":0,"Title":"String","IsChecked":false},{"__type":"IDB.API.DTO.Group, IDB.API.DTO","Image":"Icons/Group","ID":0,"Title":"String","IsChecked":false}],"Value":"String\r\nString"}]}}