Trendsic Platform Service

<back to all web services

ClockInOutRequest

Requires Authentication
Requires any of the roles:Worker, Agent, Administrator
The following routes are available for this service:
POST,OPTIONS/v1/TimeTracker/ClockInOut
import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';

class ClockInOutResponse implements IConvertible
{
    ResponseStatus? ResponseStatus;
    bool? response;

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

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

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

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

class TimeCard implements IConvertible
{
    int? AgentId;
    int? CheckInId;
    DateTime? DateLogged;
    Duration? TimeIn;
    DateTime? TimeInDate;
    Duration? TimeOut;
    DateTime? TimeOutDate;
    double? TimeLogged;
    int? PaymentType;
    int? ServiceCodeId;
    String? ServiceCode;
    double? ServiceRate;
    String? ServiceDescription;
    String? WorkDescription;
    Duration? AdjustedTimeIn;
    DateTime? AdjustedTimeInDate;
    Duration? AdjustedTimeOut;
    DateTime? AdjustedTimeOutDate;
    bool? IsValid;
    bool? Adjusted;
    int? ProjectID;
    String? ProjectName;
    int? ClientID;
    String? ClientName;
    int? CategoryID;
    String? CategoryName;
    int? JobID;
    String? JobName;

    TimeCard({this.AgentId,this.CheckInId,this.DateLogged,this.TimeIn,this.TimeInDate,this.TimeOut,this.TimeOutDate,this.TimeLogged,this.PaymentType,this.ServiceCodeId,this.ServiceCode,this.ServiceRate,this.ServiceDescription,this.WorkDescription,this.AdjustedTimeIn,this.AdjustedTimeInDate,this.AdjustedTimeOut,this.AdjustedTimeOutDate,this.IsValid,this.Adjusted,this.ProjectID,this.ProjectName,this.ClientID,this.ClientName,this.CategoryID,this.CategoryName,this.JobID,this.JobName});
    TimeCard.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        AgentId = json['AgentId'];
        CheckInId = json['CheckInId'];
        DateLogged = JsonConverters.fromJson(json['DateLogged'],'DateTime',context!);
        TimeIn = JsonConverters.fromJson(json['TimeIn'],'Duration',context!);
        TimeInDate = JsonConverters.fromJson(json['TimeInDate'],'DateTime',context!);
        TimeOut = JsonConverters.fromJson(json['TimeOut'],'Duration',context!);
        TimeOutDate = JsonConverters.fromJson(json['TimeOutDate'],'DateTime',context!);
        TimeLogged = JsonConverters.toDouble(json['TimeLogged']);
        PaymentType = json['PaymentType'];
        ServiceCodeId = json['ServiceCodeId'];
        ServiceCode = json['ServiceCode'];
        ServiceRate = JsonConverters.toDouble(json['ServiceRate']);
        ServiceDescription = json['ServiceDescription'];
        WorkDescription = json['WorkDescription'];
        AdjustedTimeIn = JsonConverters.fromJson(json['AdjustedTimeIn'],'Duration',context!);
        AdjustedTimeInDate = JsonConverters.fromJson(json['AdjustedTimeInDate'],'DateTime',context!);
        AdjustedTimeOut = JsonConverters.fromJson(json['AdjustedTimeOut'],'Duration',context!);
        AdjustedTimeOutDate = JsonConverters.fromJson(json['AdjustedTimeOutDate'],'DateTime',context!);
        IsValid = json['IsValid'];
        Adjusted = json['Adjusted'];
        ProjectID = json['ProjectID'];
        ProjectName = json['ProjectName'];
        ClientID = json['ClientID'];
        ClientName = json['ClientName'];
        CategoryID = json['CategoryID'];
        CategoryName = json['CategoryName'];
        JobID = json['JobID'];
        JobName = json['JobName'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'AgentId': AgentId,
        'CheckInId': CheckInId,
        'DateLogged': JsonConverters.toJson(DateLogged,'DateTime',context!),
        'TimeIn': JsonConverters.toJson(TimeIn,'Duration',context!),
        'TimeInDate': JsonConverters.toJson(TimeInDate,'DateTime',context!),
        'TimeOut': JsonConverters.toJson(TimeOut,'Duration',context!),
        'TimeOutDate': JsonConverters.toJson(TimeOutDate,'DateTime',context!),
        'TimeLogged': TimeLogged,
        'PaymentType': PaymentType,
        'ServiceCodeId': ServiceCodeId,
        'ServiceCode': ServiceCode,
        'ServiceRate': ServiceRate,
        'ServiceDescription': ServiceDescription,
        'WorkDescription': WorkDescription,
        'AdjustedTimeIn': JsonConverters.toJson(AdjustedTimeIn,'Duration',context!),
        'AdjustedTimeInDate': JsonConverters.toJson(AdjustedTimeInDate,'DateTime',context!),
        'AdjustedTimeOut': JsonConverters.toJson(AdjustedTimeOut,'Duration',context!),
        'AdjustedTimeOutDate': JsonConverters.toJson(AdjustedTimeOutDate,'DateTime',context!),
        'IsValid': IsValid,
        'Adjusted': Adjusted,
        'ProjectID': ProjectID,
        'ProjectName': ProjectName,
        'ClientID': ClientID,
        'ClientName': ClientName,
        'CategoryID': CategoryID,
        'CategoryName': CategoryName,
        'JobID': JobID,
        'JobName': JobName
    };

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

class ClockInOutRequest implements IConvertible
{
    TimeCard? Timecard;

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

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

    Map<String, dynamic> toJson() => {
        'Timecard': JsonConverters.toJson(Timecard,'TimeCard',context!)
    };

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

TypeContext _ctx = TypeContext(library: 'api.dev.dynamics.trendsic.com', types: <String, TypeInfo> {
    'ClockInOutResponse': TypeInfo(TypeOf.Class, create:() => ClockInOutResponse()),
    'TimeCard': TypeInfo(TypeOf.Class, create:() => TimeCard()),
    'ClockInOutRequest': TypeInfo(TypeOf.Class, create:() => ClockInOutRequest()),
});

Dart ClockInOutRequest 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/TimeTracker/ClockInOut HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<ClockInOutRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <Timecard>
    <Adjusted>false</Adjusted>
    <AdjustedTimeIn>PT0S</AdjustedTimeIn>
    <AdjustedTimeInDate xmlns:d3p1="http://schemas.datacontract.org/2004/07/System">
      <d3p1:DateTime>0001-01-01T00:00:00Z</d3p1:DateTime>
      <d3p1:OffsetMinutes>0</d3p1:OffsetMinutes>
    </AdjustedTimeInDate>
    <AdjustedTimeOut>PT0S</AdjustedTimeOut>
    <AdjustedTimeOutDate xmlns:d3p1="http://schemas.datacontract.org/2004/07/System">
      <d3p1:DateTime>0001-01-01T00:00:00Z</d3p1:DateTime>
      <d3p1:OffsetMinutes>0</d3p1:OffsetMinutes>
    </AdjustedTimeOutDate>
    <AgentId>0</AgentId>
    <CategoryID>0</CategoryID>
    <CategoryName>String</CategoryName>
    <CheckInId>0</CheckInId>
    <ClientID>0</ClientID>
    <ClientName>String</ClientName>
    <DateLogged>0001-01-01T00:00:00</DateLogged>
    <IsValid>false</IsValid>
    <JobID>0</JobID>
    <JobName>String</JobName>
    <PaymentType>0</PaymentType>
    <ProjectID>0</ProjectID>
    <ProjectName>String</ProjectName>
    <ServiceCode>String</ServiceCode>
    <ServiceCodeId>0</ServiceCodeId>
    <ServiceDescription>String</ServiceDescription>
    <ServiceRate>0</ServiceRate>
    <TimeIn>PT0S</TimeIn>
    <TimeInDate xmlns:d3p1="http://schemas.datacontract.org/2004/07/System">
      <d3p1:DateTime>0001-01-01T00:00:00Z</d3p1:DateTime>
      <d3p1:OffsetMinutes>0</d3p1:OffsetMinutes>
    </TimeInDate>
    <TimeLogged>0</TimeLogged>
    <TimeOut>PT0S</TimeOut>
    <TimeOutDate xmlns:d3p1="http://schemas.datacontract.org/2004/07/System">
      <d3p1:DateTime>0001-01-01T00:00:00Z</d3p1:DateTime>
      <d3p1:OffsetMinutes>0</d3p1:OffsetMinutes>
    </TimeOutDate>
    <WorkDescription>String</WorkDescription>
  </Timecard>
</ClockInOutRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<ClockInOutResponse 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>
  <response>false</response>
</ClockInOutResponse>