Trendsic Platform Service

<back to all web services

ServiceAgreementRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/project/{ProjectID}/agreements
GET,POST,PUT,DELETE,OPTIONS/v1/serviceagreement
GET,DELETE,OPTIONS/v1/serviceagreement/{AgreementID}
import 'package:servicestack/servicestack.dart';

class ServiceAgreement implements IConvertible
{
    int? AgreementID;
    String? AgreementUID;
    String? TenantId;
    String? BranchId;
    String? BranchName;
    int? ProjectID;
    String? ProjectName;
    String? Name;
    String? Status;
    String? PricingShape;
    double? MonthlyAmount;
    double? PerVisitAmount;
    String? SkipPolicy;
    int? SeasonStartMonth;
    int? SeasonStartDay;
    int? SeasonEndMonth;
    int? SeasonEndDay;
    String? RecurrenceFrequency;
    String? RecurrenceBy;
    String? RecurrenceByValue;
    DateTime? EffectiveStartDate;
    DateTime? EndDate;
    int? PreferredCrewID;
    String? PreferredCrewName;
    String? ExternalRef;
    String? CreatedBy;
    DateTime? CreatedAt;
    String? UpdatedBy;
    DateTime? UpdatedAt;
    DateTime? NextVisitDate;
    int? VisitsThisPeriod;

    ServiceAgreement({this.AgreementID,this.AgreementUID,this.TenantId,this.BranchId,this.BranchName,this.ProjectID,this.ProjectName,this.Name,this.Status,this.PricingShape,this.MonthlyAmount,this.PerVisitAmount,this.SkipPolicy,this.SeasonStartMonth,this.SeasonStartDay,this.SeasonEndMonth,this.SeasonEndDay,this.RecurrenceFrequency,this.RecurrenceBy,this.RecurrenceByValue,this.EffectiveStartDate,this.EndDate,this.PreferredCrewID,this.PreferredCrewName,this.ExternalRef,this.CreatedBy,this.CreatedAt,this.UpdatedBy,this.UpdatedAt,this.NextVisitDate,this.VisitsThisPeriod});
    ServiceAgreement.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AgreementID = json['AgreementID'];
        AgreementUID = json['AgreementUID'];
        TenantId = json['TenantId'];
        BranchId = json['BranchId'];
        BranchName = json['BranchName'];
        ProjectID = json['ProjectID'];
        ProjectName = json['ProjectName'];
        Name = json['Name'];
        Status = json['Status'];
        PricingShape = json['PricingShape'];
        MonthlyAmount = JsonConverters.toDouble(json['MonthlyAmount']);
        PerVisitAmount = JsonConverters.toDouble(json['PerVisitAmount']);
        SkipPolicy = json['SkipPolicy'];
        SeasonStartMonth = json['SeasonStartMonth'];
        SeasonStartDay = json['SeasonStartDay'];
        SeasonEndMonth = json['SeasonEndMonth'];
        SeasonEndDay = json['SeasonEndDay'];
        RecurrenceFrequency = json['RecurrenceFrequency'];
        RecurrenceBy = json['RecurrenceBy'];
        RecurrenceByValue = json['RecurrenceByValue'];
        EffectiveStartDate = JsonConverters.fromJson(json['EffectiveStartDate'],'DateTime',context!);
        EndDate = JsonConverters.fromJson(json['EndDate'],'DateTime',context!);
        PreferredCrewID = json['PreferredCrewID'];
        PreferredCrewName = json['PreferredCrewName'];
        ExternalRef = json['ExternalRef'];
        CreatedBy = json['CreatedBy'];
        CreatedAt = JsonConverters.fromJson(json['CreatedAt'],'DateTime',context!);
        UpdatedBy = json['UpdatedBy'];
        UpdatedAt = JsonConverters.fromJson(json['UpdatedAt'],'DateTime',context!);
        NextVisitDate = JsonConverters.fromJson(json['NextVisitDate'],'DateTime',context!);
        VisitsThisPeriod = json['VisitsThisPeriod'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AgreementID': AgreementID,
        'AgreementUID': AgreementUID,
        'TenantId': TenantId,
        'BranchId': BranchId,
        'BranchName': BranchName,
        'ProjectID': ProjectID,
        'ProjectName': ProjectName,
        'Name': Name,
        'Status': Status,
        'PricingShape': PricingShape,
        'MonthlyAmount': MonthlyAmount,
        'PerVisitAmount': PerVisitAmount,
        'SkipPolicy': SkipPolicy,
        'SeasonStartMonth': SeasonStartMonth,
        'SeasonStartDay': SeasonStartDay,
        'SeasonEndMonth': SeasonEndMonth,
        'SeasonEndDay': SeasonEndDay,
        'RecurrenceFrequency': RecurrenceFrequency,
        'RecurrenceBy': RecurrenceBy,
        'RecurrenceByValue': RecurrenceByValue,
        'EffectiveStartDate': JsonConverters.toJson(EffectiveStartDate,'DateTime',context!),
        'EndDate': JsonConverters.toJson(EndDate,'DateTime',context!),
        'PreferredCrewID': PreferredCrewID,
        'PreferredCrewName': PreferredCrewName,
        'ExternalRef': ExternalRef,
        'CreatedBy': CreatedBy,
        'CreatedAt': JsonConverters.toJson(CreatedAt,'DateTime',context!),
        'UpdatedBy': UpdatedBy,
        'UpdatedAt': JsonConverters.toJson(UpdatedAt,'DateTime',context!),
        'NextVisitDate': JsonConverters.toJson(NextVisitDate,'DateTime',context!),
        'VisitsThisPeriod': VisitsThisPeriod
    };

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

class ServiceAgreementResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    List<ServiceAgreement>? ServiceAgreement = [];

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

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

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

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

class ServiceAgreementRequest implements IConvertible
{
    int? AgreementID;
    int? ProjectID;
    List<ServiceAgreement>? ServiceAgreement = [];

    ServiceAgreementRequest({this.AgreementID,this.ProjectID,this.ServiceAgreement});
    ServiceAgreementRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

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

    Map<String, dynamic> toJson() => {
        'AgreementID': AgreementID,
        'ProjectID': ProjectID,
        'ServiceAgreement': JsonConverters.toJson(ServiceAgreement,'List<ServiceAgreement>',context!)
    };

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

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

Dart ServiceAgreementRequest DTOs

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

HTTP + XML

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

POST /v1/serviceagreement HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<ServiceAgreementRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <AgreementID>0</AgreementID>
  <ProjectID>0</ProjectID>
  <ServiceAgreement>
    <ServiceAgreement>
      <AgreementID>0</AgreementID>
      <AgreementUID>00000000-0000-0000-0000-000000000000</AgreementUID>
      <BranchId>00000000-0000-0000-0000-000000000000</BranchId>
      <BranchName>String</BranchName>
      <CreatedAt>0001-01-01T00:00:00</CreatedAt>
      <CreatedBy>String</CreatedBy>
      <EffectiveStartDate>0001-01-01T00:00:00</EffectiveStartDate>
      <EndDate>0001-01-01T00:00:00</EndDate>
      <ExternalRef>String</ExternalRef>
      <MonthlyAmount>0</MonthlyAmount>
      <Name>String</Name>
      <NextVisitDate>0001-01-01T00:00:00</NextVisitDate>
      <PerVisitAmount>0</PerVisitAmount>
      <PreferredCrewID>0</PreferredCrewID>
      <PreferredCrewName>String</PreferredCrewName>
      <PricingShape>String</PricingShape>
      <ProjectID>0</ProjectID>
      <ProjectName>String</ProjectName>
      <RecurrenceBy>String</RecurrenceBy>
      <RecurrenceByValue>String</RecurrenceByValue>
      <RecurrenceFrequency>String</RecurrenceFrequency>
      <SeasonEndDay>0</SeasonEndDay>
      <SeasonEndMonth>0</SeasonEndMonth>
      <SeasonStartDay>0</SeasonStartDay>
      <SeasonStartMonth>0</SeasonStartMonth>
      <SkipPolicy>String</SkipPolicy>
      <Status>String</Status>
      <TenantId>00000000-0000-0000-0000-000000000000</TenantId>
      <UpdatedAt>0001-01-01T00:00:00</UpdatedAt>
      <UpdatedBy>String</UpdatedBy>
      <VisitsThisPeriod>0</VisitsThisPeriod>
    </ServiceAgreement>
  </ServiceAgreement>
</ServiceAgreementRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ServiceAgreementResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <ServiceAgreement>
    <ServiceAgreement>
      <AgreementID>0</AgreementID>
      <AgreementUID>00000000-0000-0000-0000-000000000000</AgreementUID>
      <BranchId>00000000-0000-0000-0000-000000000000</BranchId>
      <BranchName>String</BranchName>
      <CreatedAt>0001-01-01T00:00:00</CreatedAt>
      <CreatedBy>String</CreatedBy>
      <EffectiveStartDate>0001-01-01T00:00:00</EffectiveStartDate>
      <EndDate>0001-01-01T00:00:00</EndDate>
      <ExternalRef>String</ExternalRef>
      <MonthlyAmount>0</MonthlyAmount>
      <Name>String</Name>
      <NextVisitDate>0001-01-01T00:00:00</NextVisitDate>
      <PerVisitAmount>0</PerVisitAmount>
      <PreferredCrewID>0</PreferredCrewID>
      <PreferredCrewName>String</PreferredCrewName>
      <PricingShape>String</PricingShape>
      <ProjectID>0</ProjectID>
      <ProjectName>String</ProjectName>
      <RecurrenceBy>String</RecurrenceBy>
      <RecurrenceByValue>String</RecurrenceByValue>
      <RecurrenceFrequency>String</RecurrenceFrequency>
      <SeasonEndDay>0</SeasonEndDay>
      <SeasonEndMonth>0</SeasonEndMonth>
      <SeasonStartDay>0</SeasonStartDay>
      <SeasonStartMonth>0</SeasonStartMonth>
      <SkipPolicy>String</SkipPolicy>
      <Status>String</Status>
      <TenantId>00000000-0000-0000-0000-000000000000</TenantId>
      <UpdatedAt>0001-01-01T00:00:00</UpdatedAt>
      <UpdatedBy>String</UpdatedBy>
      <VisitsThisPeriod>0</VisitsThisPeriod>
    </ServiceAgreement>
  </ServiceAgreement>
</ServiceAgreementResponse>