| Requires any of the roles: | Agent, Administrator |
| GET,OPTIONS | /v1/Rfp/{RfpDocumentUID}/Proposal |
|---|
import 'package:servicestack/servicestack.dart';
class ResourcedPosition implements IConvertible
{
String? PositionTag;
double? Hours;
int? Headcount;
String? SourceReference;
String? Notes;
bool? IsInCatalog;
int? ContactID;
ResourcedPosition({this.PositionTag,this.Hours,this.Headcount,this.SourceReference,this.Notes,this.IsInCatalog,this.ContactID});
ResourcedPosition.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
PositionTag = json['PositionTag'];
Hours = JsonConverters.toDouble(json['Hours']);
Headcount = json['Headcount'];
SourceReference = json['SourceReference'];
Notes = json['Notes'];
IsInCatalog = json['IsInCatalog'];
ContactID = json['ContactID'];
return this;
}
Map<String, dynamic> toJson() => {
'PositionTag': PositionTag,
'Hours': Hours,
'Headcount': Headcount,
'SourceReference': SourceReference,
'Notes': Notes,
'IsInCatalog': IsInCatalog,
'ContactID': ContactID
};
getTypeName() => "ResourcedPosition";
TypeContext? context = _ctx;
}
class ResourcedEquipment implements IConvertible
{
int? EquipmentID;
String? EquipmentName;
String? MakeModel;
double? Quantity;
double? DurationDays;
String? SourceReference;
String? Notes;
bool? IsInCatalog;
int? SuggestedEquipmentID;
String? SuggestedEquipmentName;
ResourcedEquipment({this.EquipmentID,this.EquipmentName,this.MakeModel,this.Quantity,this.DurationDays,this.SourceReference,this.Notes,this.IsInCatalog,this.SuggestedEquipmentID,this.SuggestedEquipmentName});
ResourcedEquipment.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
EquipmentID = json['EquipmentID'];
EquipmentName = json['EquipmentName'];
MakeModel = json['MakeModel'];
Quantity = JsonConverters.toDouble(json['Quantity']);
DurationDays = JsonConverters.toDouble(json['DurationDays']);
SourceReference = json['SourceReference'];
Notes = json['Notes'];
IsInCatalog = json['IsInCatalog'];
SuggestedEquipmentID = json['SuggestedEquipmentID'];
SuggestedEquipmentName = json['SuggestedEquipmentName'];
return this;
}
Map<String, dynamic> toJson() => {
'EquipmentID': EquipmentID,
'EquipmentName': EquipmentName,
'MakeModel': MakeModel,
'Quantity': Quantity,
'DurationDays': DurationDays,
'SourceReference': SourceReference,
'Notes': Notes,
'IsInCatalog': IsInCatalog,
'SuggestedEquipmentID': SuggestedEquipmentID,
'SuggestedEquipmentName': SuggestedEquipmentName
};
getTypeName() => "ResourcedEquipment";
TypeContext? context = _ctx;
}
class ResourcedMaterial implements IConvertible
{
int? MaterialID;
String? MaterialName;
String? MakeModel;
double? Quantity;
String? Unit;
String? SourceReference;
String? Notes;
bool? IsInCatalog;
int? SuggestedMaterialID;
String? SuggestedMaterialName;
ResourcedMaterial({this.MaterialID,this.MaterialName,this.MakeModel,this.Quantity,this.Unit,this.SourceReference,this.Notes,this.IsInCatalog,this.SuggestedMaterialID,this.SuggestedMaterialName});
ResourcedMaterial.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
MaterialID = json['MaterialID'];
MaterialName = json['MaterialName'];
MakeModel = json['MakeModel'];
Quantity = JsonConverters.toDouble(json['Quantity']);
Unit = json['Unit'];
SourceReference = json['SourceReference'];
Notes = json['Notes'];
IsInCatalog = json['IsInCatalog'];
SuggestedMaterialID = json['SuggestedMaterialID'];
SuggestedMaterialName = json['SuggestedMaterialName'];
return this;
}
Map<String, dynamic> toJson() => {
'MaterialID': MaterialID,
'MaterialName': MaterialName,
'MakeModel': MakeModel,
'Quantity': Quantity,
'Unit': Unit,
'SourceReference': SourceReference,
'Notes': Notes,
'IsInCatalog': IsInCatalog,
'SuggestedMaterialID': SuggestedMaterialID,
'SuggestedMaterialName': SuggestedMaterialName
};
getTypeName() => "ResourcedMaterial";
TypeContext? context = _ctx;
}
class TaskResourcing implements IConvertible
{
List<ResourcedPosition>? Positions = [];
List<ResourcedEquipment>? Equipment = [];
List<ResourcedMaterial>? Materials = [];
TaskResourcing({this.Positions,this.Equipment,this.Materials});
TaskResourcing.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Positions = JsonConverters.fromJson(json['Positions'],'List<ResourcedPosition>',context!);
Equipment = JsonConverters.fromJson(json['Equipment'],'List<ResourcedEquipment>',context!);
Materials = JsonConverters.fromJson(json['Materials'],'List<ResourcedMaterial>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Positions': JsonConverters.toJson(Positions,'List<ResourcedPosition>',context!),
'Equipment': JsonConverters.toJson(Equipment,'List<ResourcedEquipment>',context!),
'Materials': JsonConverters.toJson(Materials,'List<ResourcedMaterial>',context!)
};
getTypeName() => "TaskResourcing";
TypeContext? context = _ctx;
}
class ProposedTask implements IConvertible
{
int? Seq;
String? Name;
String? Category;
double? Quantity;
String? Unit;
String? SourceItemNumber;
String? SourceReference;
String? Notes;
TaskResourcing? Resourcing;
double? DurationDays;
List<int>? DependsOn = [];
DateTime? EstimatedStartDate;
DateTime? EstimatedEndDate;
ProposedTask({this.Seq,this.Name,this.Category,this.Quantity,this.Unit,this.SourceItemNumber,this.SourceReference,this.Notes,this.Resourcing,this.DurationDays,this.DependsOn,this.EstimatedStartDate,this.EstimatedEndDate});
ProposedTask.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Seq = json['Seq'];
Name = json['Name'];
Category = json['Category'];
Quantity = JsonConverters.toDouble(json['Quantity']);
Unit = json['Unit'];
SourceItemNumber = json['SourceItemNumber'];
SourceReference = json['SourceReference'];
Notes = json['Notes'];
Resourcing = JsonConverters.fromJson(json['Resourcing'],'TaskResourcing',context!);
DurationDays = JsonConverters.toDouble(json['DurationDays']);
DependsOn = JsonConverters.fromJson(json['DependsOn'],'List<int>',context!);
EstimatedStartDate = JsonConverters.fromJson(json['EstimatedStartDate'],'DateTime',context!);
EstimatedEndDate = JsonConverters.fromJson(json['EstimatedEndDate'],'DateTime',context!);
return this;
}
Map<String, dynamic> toJson() => {
'Seq': Seq,
'Name': Name,
'Category': Category,
'Quantity': Quantity,
'Unit': Unit,
'SourceItemNumber': SourceItemNumber,
'SourceReference': SourceReference,
'Notes': Notes,
'Resourcing': JsonConverters.toJson(Resourcing,'TaskResourcing',context!),
'DurationDays': DurationDays,
'DependsOn': JsonConverters.toJson(DependsOn,'List<int>',context!),
'EstimatedStartDate': JsonConverters.toJson(EstimatedStartDate,'DateTime',context!),
'EstimatedEndDate': JsonConverters.toJson(EstimatedEndDate,'DateTime',context!)
};
getTypeName() => "ProposedTask";
TypeContext? context = _ctx;
}
class ProjectProposal implements IConvertible
{
int? RfpDocumentID;
String? ProjectName;
String? ClientName;
String? ProjectType;
String? ProjectLocation;
String? Scope;
String? ProjectDescription;
int? ContractDurationDays;
String? BidDueDate;
DateTime? EstimatedStartDate;
DateTime? EstimatedEndDate;
List<ProposedTask>? Tasks = [];
ProjectProposal({this.RfpDocumentID,this.ProjectName,this.ClientName,this.ProjectType,this.ProjectLocation,this.Scope,this.ProjectDescription,this.ContractDurationDays,this.BidDueDate,this.EstimatedStartDate,this.EstimatedEndDate,this.Tasks});
ProjectProposal.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RfpDocumentID = json['RfpDocumentID'];
ProjectName = json['ProjectName'];
ClientName = json['ClientName'];
ProjectType = json['ProjectType'];
ProjectLocation = json['ProjectLocation'];
Scope = json['Scope'];
ProjectDescription = json['ProjectDescription'];
ContractDurationDays = json['ContractDurationDays'];
BidDueDate = json['BidDueDate'];
EstimatedStartDate = JsonConverters.fromJson(json['EstimatedStartDate'],'DateTime',context!);
EstimatedEndDate = JsonConverters.fromJson(json['EstimatedEndDate'],'DateTime',context!);
Tasks = JsonConverters.fromJson(json['Tasks'],'List<ProposedTask>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'RfpDocumentID': RfpDocumentID,
'ProjectName': ProjectName,
'ClientName': ClientName,
'ProjectType': ProjectType,
'ProjectLocation': ProjectLocation,
'Scope': Scope,
'ProjectDescription': ProjectDescription,
'ContractDurationDays': ContractDurationDays,
'BidDueDate': BidDueDate,
'EstimatedStartDate': JsonConverters.toJson(EstimatedStartDate,'DateTime',context!),
'EstimatedEndDate': JsonConverters.toJson(EstimatedEndDate,'DateTime',context!),
'Tasks': JsonConverters.toJson(Tasks,'List<ProposedTask>',context!)
};
getTypeName() => "ProjectProposal";
TypeContext? context = _ctx;
}
class CrewPlanLine implements IConvertible
{
String? PositionTag;
int? Needed;
int? NaiveTotal;
int? TaskAssignments;
CrewPlanLine({this.PositionTag,this.Needed,this.NaiveTotal,this.TaskAssignments});
CrewPlanLine.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
PositionTag = json['PositionTag'];
Needed = json['Needed'];
NaiveTotal = json['NaiveTotal'];
TaskAssignments = json['TaskAssignments'];
return this;
}
Map<String, dynamic> toJson() => {
'PositionTag': PositionTag,
'Needed': Needed,
'NaiveTotal': NaiveTotal,
'TaskAssignments': TaskAssignments
};
getTypeName() => "CrewPlanLine";
TypeContext? context = _ctx;
}
class RfpProposalResponse implements IConvertible
{
ResponseStatus? ResponseStatus;
int? RfpDocumentID;
ProjectProposal? Proposal;
List<CrewPlanLine>? CrewPlan = [];
RfpProposalResponse({this.ResponseStatus,this.RfpDocumentID,this.Proposal,this.CrewPlan});
RfpProposalResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
RfpDocumentID = json['RfpDocumentID'];
Proposal = JsonConverters.fromJson(json['Proposal'],'ProjectProposal',context!);
CrewPlan = JsonConverters.fromJson(json['CrewPlan'],'List<CrewPlanLine>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
'RfpDocumentID': RfpDocumentID,
'Proposal': JsonConverters.toJson(Proposal,'ProjectProposal',context!),
'CrewPlan': JsonConverters.toJson(CrewPlan,'List<CrewPlanLine>',context!)
};
getTypeName() => "RfpProposalResponse";
TypeContext? context = _ctx;
}
class RfpProposalRequest implements IConvertible
{
String? RfpDocumentUID;
RfpProposalRequest({this.RfpDocumentUID});
RfpProposalRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
RfpDocumentUID = json['RfpDocumentUID'];
return this;
}
Map<String, dynamic> toJson() => {
'RfpDocumentUID': RfpDocumentUID
};
getTypeName() => "RfpProposalRequest";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
'ResourcedPosition': TypeInfo(TypeOf.Class, create:() => ResourcedPosition()),
'ResourcedEquipment': TypeInfo(TypeOf.Class, create:() => ResourcedEquipment()),
'ResourcedMaterial': TypeInfo(TypeOf.Class, create:() => ResourcedMaterial()),
'TaskResourcing': TypeInfo(TypeOf.Class, create:() => TaskResourcing()),
'List<ResourcedPosition>': TypeInfo(TypeOf.Class, create:() => <ResourcedPosition>[]),
'List<ResourcedEquipment>': TypeInfo(TypeOf.Class, create:() => <ResourcedEquipment>[]),
'List<ResourcedMaterial>': TypeInfo(TypeOf.Class, create:() => <ResourcedMaterial>[]),
'ProposedTask': TypeInfo(TypeOf.Class, create:() => ProposedTask()),
'ProjectProposal': TypeInfo(TypeOf.Class, create:() => ProjectProposal()),
'List<ProposedTask>': TypeInfo(TypeOf.Class, create:() => <ProposedTask>[]),
'CrewPlanLine': TypeInfo(TypeOf.Class, create:() => CrewPlanLine()),
'RfpProposalResponse': TypeInfo(TypeOf.Class, create:() => RfpProposalResponse()),
'List<CrewPlanLine>': TypeInfo(TypeOf.Class, create:() => <CrewPlanLine>[]),
'RfpProposalRequest': TypeInfo(TypeOf.Class, create:() => RfpProposalRequest()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v1/Rfp/{RfpDocumentUID}/Proposal HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"RfpDocumentID":0,"Proposal":{"RfpDocumentID":0,"ProjectName":"String","ClientName":"String","ProjectType":"String","ProjectLocation":"String","Scope":"String","ProjectDescription":"String","ContractDurationDays":0,"BidDueDate":"String","EstimatedStartDate":"0001-01-01T00:00:00.0000000","EstimatedEndDate":"0001-01-01T00:00:00.0000000","Tasks":[{"Seq":0,"Name":"String","Category":"String","Quantity":0,"Unit":"String","SourceItemNumber":"String","SourceReference":"String","Notes":"String","Resourcing":{"Positions":[{"PositionTag":"String","Hours":0,"Headcount":0,"SourceReference":"String","Notes":"String","IsInCatalog":false,"ContactID":0}],"Equipment":[{"EquipmentID":0,"EquipmentName":"String","MakeModel":"String","Quantity":0,"DurationDays":0,"SourceReference":"String","Notes":"String","IsInCatalog":false,"SuggestedEquipmentID":0,"SuggestedEquipmentName":"String"}],"Materials":[{"MaterialID":0,"MaterialName":"String","MakeModel":"String","Quantity":0,"Unit":"String","SourceReference":"String","Notes":"String","IsInCatalog":false,"SuggestedMaterialID":0,"SuggestedMaterialName":"String"}]},"DurationDays":0,"DependsOn":[0],"EstimatedStartDate":"0001-01-01T00:00:00.0000000","EstimatedEndDate":"0001-01-01T00:00:00.0000000"}]},"CrewPlan":[{"PositionTag":"String","Needed":0,"NaiveTotal":0,"TaskAssignments":0}]}