Trendsic Platform Service

<back to all web services

MaterialProjectRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/Material/{MaterialID}/Projects
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class Project implements IConvertible
{
    int? ProjectID;
    String? ProjectUID;
    String? ProjectName;
    String? ImageURL;
    String? ImageKey;
    String? ClientName;
    String? ClientPhone;
    String? ClientEmail;
    int? ProjectManagerID;
    String? ProjectManagerName;
    DateTime? StartDate;
    DateTime? EndDate;
    DateTime? ActualStartDate;
    DateTime? ActualEndDate;
    int? JobCount;
    int? CrewMemberCount;
    int? EquipmentCount;
    int? MaterialCount;
    int? ProjectStatusID;
    String? ProjectStatusDescription;
    double? Budget;
    double? CostToDate;
    String? ProjectLocation;
    String? ProjectType;
    String? ProjectSponsor;
    String? CreatedBy;
    DateTime? CreatedAt;
    DateTime? UpdatedAt;
    String? ProjectDescription;
    String? Scope;
    int? StatusId;

    Project({this.ProjectID,this.ProjectUID,this.ProjectName,this.ImageURL,this.ImageKey,this.ClientName,this.ClientPhone,this.ClientEmail,this.ProjectManagerID,this.ProjectManagerName,this.StartDate,this.EndDate,this.ActualStartDate,this.ActualEndDate,this.JobCount,this.CrewMemberCount,this.EquipmentCount,this.MaterialCount,this.ProjectStatusID,this.ProjectStatusDescription,this.Budget,this.CostToDate,this.ProjectLocation,this.ProjectType,this.ProjectSponsor,this.CreatedBy,this.CreatedAt,this.UpdatedAt,this.ProjectDescription,this.Scope,this.StatusId});
    Project.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ProjectID = json['ProjectID'];
        ProjectUID = json['ProjectUID'];
        ProjectName = json['ProjectName'];
        ImageURL = json['ImageURL'];
        ImageKey = json['ImageKey'];
        ClientName = json['ClientName'];
        ClientPhone = json['ClientPhone'];
        ClientEmail = json['ClientEmail'];
        ProjectManagerID = json['ProjectManagerID'];
        ProjectManagerName = json['ProjectManagerName'];
        StartDate = JsonConverters.fromJson(json['StartDate'],'DateTime',context!);
        EndDate = JsonConverters.fromJson(json['EndDate'],'DateTime',context!);
        ActualStartDate = JsonConverters.fromJson(json['ActualStartDate'],'DateTime',context!);
        ActualEndDate = JsonConverters.fromJson(json['ActualEndDate'],'DateTime',context!);
        JobCount = json['JobCount'];
        CrewMemberCount = json['CrewMemberCount'];
        EquipmentCount = json['EquipmentCount'];
        MaterialCount = json['MaterialCount'];
        ProjectStatusID = json['ProjectStatusID'];
        ProjectStatusDescription = json['ProjectStatusDescription'];
        Budget = JsonConverters.toDouble(json['Budget']);
        CostToDate = JsonConverters.toDouble(json['CostToDate']);
        ProjectLocation = json['ProjectLocation'];
        ProjectType = json['ProjectType'];
        ProjectSponsor = json['ProjectSponsor'];
        CreatedBy = json['CreatedBy'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!);
        ProjectDescription = json['ProjectDescription'];
        Scope = json['Scope'];
        StatusId = json['StatusId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ProjectID': ProjectID,
        'ProjectUID': ProjectUID,
        'ProjectName': ProjectName,
        'ImageURL': ImageURL,
        'ImageKey': ImageKey,
        'ClientName': ClientName,
        'ClientPhone': ClientPhone,
        'ClientEmail': ClientEmail,
        'ProjectManagerID': ProjectManagerID,
        'ProjectManagerName': ProjectManagerName,
        'StartDate': JsonConverters.toJson(StartDate,'DateTime',context!),
        'EndDate': JsonConverters.toJson(EndDate,'DateTime',context!),
        'ActualStartDate': JsonConverters.toJson(ActualStartDate,'DateTime',context!),
        'ActualEndDate': JsonConverters.toJson(ActualEndDate,'DateTime',context!),
        'JobCount': JobCount,
        'CrewMemberCount': CrewMemberCount,
        'EquipmentCount': EquipmentCount,
        'MaterialCount': MaterialCount,
        'ProjectStatusID': ProjectStatusID,
        'ProjectStatusDescription': ProjectStatusDescription,
        'Budget': Budget,
        'CostToDate': CostToDate,
        'ProjectLocation': ProjectLocation,
        'ProjectType': ProjectType,
        'ProjectSponsor': ProjectSponsor,
        'CreatedBy': CreatedBy,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
        'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!),
        'ProjectDescription': ProjectDescription,
        'Scope': Scope,
        'StatusId': StatusId
    };

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

class MaterialProjectResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    List<Project>? Projects = [];

    MaterialProjectResponse({this.ResponseStatus,this.Projects});
    MaterialProjectResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ResponseStatus = JsonConverters.fromJson(json['ResponseStatus'],'ResponseStatus',context!);
        Projects = JsonConverters.fromJson(json['Projects'],'List<Project>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ResponseStatus': JsonConverters.toJson(ResponseStatus,'ResponseStatus',context!),
        'Projects': JsonConverters.toJson(Projects,'List<Project>',context!)
    };

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

class MaterialProjectRequest implements IConvertible
{
    int? MaterialID;

    MaterialProjectRequest({this.MaterialID});
    MaterialProjectRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        MaterialID = json['MaterialID'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'MaterialID': MaterialID
    };

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

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

Dart MaterialProjectRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/Material/{MaterialID}/Projects HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"Projects":[{"ProjectID":0,"ProjectUID":"00000000000000000000000000000000","ProjectName":"String","ImageURL":"String","ImageKey":"String","ClientName":"String","ClientPhone":"String","ClientEmail":"String","ProjectManagerID":0,"ProjectManagerName":"String","StartDate":"0001-01-01T00:00:00.0000000","EndDate":"0001-01-01T00:00:00.0000000","ActualStartDate":"0001-01-01T00:00:00.0000000","ActualEndDate":"0001-01-01T00:00:00.0000000","JobCount":0,"CrewMemberCount":0,"EquipmentCount":0,"MaterialCount":0,"ProjectStatusID":0,"ProjectStatusDescription":"String","Budget":0,"CostToDate":0,"ProjectLocation":"String","ProjectType":"String","ProjectSponsor":"String","CreatedBy":"String","CreatedAt":"0001-01-01T00:00:00.0000000","UpdatedAt":"0001-01-01T00:00:00.0000000","ProjectDescription":"String","Scope":"String","StatusId":0}]}