Trendsic Platform Service

<back to all web services

ScheduleReorderRequest

Requires Authentication
The following routes are available for this service:
POST/v1/schedule/reorder
namespace CRM.AgencyPlatform.API.Internal

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type WorkerScheduleItem() = 
        member val WorkerScheduleItemID:Int32 = new Int32() with get,set
        member val JobID:Int32 = new Int32() with get,set
        member val ProjectID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ContactID:Int32 = new Int32() with get,set
        member val ScheduledDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val SortOrder:Int32 = new Int32() with get,set
        member val SourceCrewID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Status:String = null with get,set
        member val StartedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CompletedAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val WorkerNotes:String = null with get,set
        member val JobName:String = null with get,set
        member val ProjectName:String = null with get,set
        member val FirstName:String = null with get,set
        member val LastName:String = null with get,set
        member val WorkerName:String = null with get,set
        member val SourceCrewName:String = null with get,set
        member val ProjectLocationID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ProjectLocationName:String = null with get,set
        member val LocationZip:String = null with get,set
        member val LocationCity:String = null with get,set
        member val LocationLatitude:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val LocationLongitude:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val JobStatusName:String = null with get,set
        member val BranchId:Guid = new Guid() with get,set
        member val BranchName:String = null with get,set
        member val WorkerHomeBranchId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val WorkerHomeBranchName:String = null with get,set

    [<AllowNullLiteral>]
    type SchedulableJob() = 
        member val JobID:Int32 = new Int32() with get,set
        member val JobName:String = null with get,set
        member val ProjectID:Int32 = new Int32() with get,set
        member val ProjectName:String = null with get,set
        member val StatusID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val StatusName:String = null with get,set
        member val ProjectLocationID:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ProjectLocationName:String = null with get,set
        member val LocationZip:String = null with get,set
        member val LocationCity:String = null with get,set
        member val LocationLatitude:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val LocationLongitude:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val ExpectedStartDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val ExpectedCompletionDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val IsRecurring:Boolean = new Boolean() with get,set
        member val OccurrenceDates:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type ScheduleWorker() = 
        member val ContactId:Int32 = new Int32() with get,set
        member val FirstName:String = null with get,set
        member val LastName:String = null with get,set
        member val Name:String = null with get,set
        member val Initials:String = null with get,set
        member val Rate:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val ImageUrl:String = null with get,set
        member val BranchId:Nullable<Guid> = new Nullable<Guid>() with get,set
        member val BranchName:String = null with get,set

    [<AllowNullLiteral>]
    type Crew() = 
        member val CrewID:Int32 = new Int32() with get,set
        member val CrewName:String = null with get,set
        member val CrewNumber:String = null with get,set
        member val CrewManagerContactID:Int32 = new Int32() with get,set
        member val CrewManagerContactName:String = null with get,set
        member val CrewColor:String = null with get,set
        member val RecordCreatedDate:DateTime = new DateTime() with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val CreatedByUID:Guid = new Guid() with get,set
        member val ProjectID:Int32 = new Int32() with get,set
        member val CrewMemberCount:Int32 = new Int32() with get,set
        member val ProjectCrewID:Int32 = new Int32() with get,set
        member val ProjectName:String = null with get,set
        member val BranchId:Guid = new Guid() with get,set
        member val BranchName:String = null with get,set

    [<AllowNullLiteral>]
    type ScheduleLastAssignment() = 
        member val JobID:Int32 = new Int32() with get,set
        member val ContactIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set
        member val SourceCrewID:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type ScheduleAutoFillResult() = 
        member val JobsFilled:Int32 = new Int32() with get,set
        member val JobsSkipped:Int32 = new Int32() with get,set
        member val VisitsScheduled:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type WorkerScheduleResponse() = 
        member val Items:ResizeArray<WorkerScheduleItem> = new ResizeArray<WorkerScheduleItem>() with get,set
        member val SchedulableJobs:ResizeArray<SchedulableJob> = new ResizeArray<SchedulableJob>() with get,set
        member val Workers:ResizeArray<ScheduleWorker> = new ResizeArray<ScheduleWorker>() with get,set
        member val Crews:ResizeArray<Crew> = new ResizeArray<Crew>() with get,set
        member val BudgetedCrew:ResizeArray<ScheduleWorker> = new ResizeArray<ScheduleWorker>() with get,set
        member val LastAssignment:ScheduleLastAssignment = null with get,set
        member val AutoFill:ScheduleAutoFillResult = null with get,set
        member val DatesScheduled:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val WorkersScheduled:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ItemsRemoved:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type ScheduleReorderRequest() = 
        member val ContactID:Int32 = new Int32() with get,set
        member val ScheduledDate:DateTime = new DateTime() with get,set
        member val OrderedIds:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set

F# ScheduleReorderRequest DTOs

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

HTTP + JSV

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

POST /v1/schedule/reorder HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ContactID: 0,
	ScheduledDate: 0001-01-01,
	OrderedIds: 
	[
		0
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Items: 
	[
		{
			WorkerScheduleItemID: 0,
			JobID: 0,
			ProjectID: 0,
			ContactID: 0,
			ScheduledDate: 0001-01-01,
			SortOrder: 0,
			SourceCrewID: 0,
			Status: String,
			StartedAt: 0001-01-01,
			CompletedAt: 0001-01-01,
			WorkerNotes: String,
			JobName: String,
			ProjectName: String,
			FirstName: String,
			LastName: String,
			WorkerName: String,
			SourceCrewName: String,
			ProjectLocationID: 0,
			ProjectLocationName: String,
			LocationZip: String,
			LocationCity: String,
			LocationLatitude: 0,
			LocationLongitude: 0,
			JobStatusName: String,
			BranchId: 00000000000000000000000000000000,
			BranchName: String,
			WorkerHomeBranchId: 00000000000000000000000000000000,
			WorkerHomeBranchName: String
		}
	],
	SchedulableJobs: 
	[
		{
			JobID: 0,
			JobName: String,
			ProjectID: 0,
			ProjectName: String,
			StatusID: 0,
			StatusName: String,
			ProjectLocationID: 0,
			ProjectLocationName: String,
			LocationZip: String,
			LocationCity: String,
			LocationLatitude: 0,
			LocationLongitude: 0,
			ExpectedStartDate: 0001-01-01,
			ExpectedCompletionDate: 0001-01-01,
			IsRecurring: False,
			OccurrenceDates: 
			[
				String
			]
		}
	],
	Workers: 
	[
		{
			ContactId: 0,
			FirstName: String,
			LastName: String,
			Name: String,
			Initials: String,
			Rate: 0,
			ImageUrl: String,
			BranchId: 00000000000000000000000000000000,
			BranchName: String
		}
	],
	Crews: 
	[
		{
			CrewID: 0,
			CrewName: String,
			CrewNumber: String,
			CrewManagerContactID: 0,
			CrewManagerContactName: String,
			CrewColor: String,
			RecordCreatedDate: 0001-01-01,
			Active: False,
			CreatedByUID: 00000000000000000000000000000000,
			ProjectID: 0,
			CrewMemberCount: 0,
			ProjectCrewID: 0,
			ProjectName: String,
			BranchId: 00000000000000000000000000000000,
			BranchName: String
		}
	],
	BudgetedCrew: 
	[
		{
			ContactId: 0,
			FirstName: String,
			LastName: String,
			Name: String,
			Initials: String,
			Rate: 0,
			ImageUrl: String,
			BranchId: 00000000000000000000000000000000,
			BranchName: String
		}
	],
	LastAssignment: 
	{
		JobID: 0,
		ContactIds: 
		[
			0
		],
		SourceCrewID: 0
	},
	AutoFill: 
	{
		JobsFilled: 0,
		JobsSkipped: 0,
		VisitsScheduled: 0
	},
	DatesScheduled: 0,
	WorkersScheduled: 0,
	ItemsRemoved: 0,
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}