Trendsic Platform Service

<back to all web services

RfpApproveRequest

Requires Authentication
Requires any of the roles:Agent, Administrator
The following routes are available for this service:
POST,OPTIONS/v1/Rfp/{RfpDocumentUID}/Approve
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using CRM.AgencyPlatform.API.Internal;

namespace CRM.AgencyPlatform.API.Internal
{
    public partial class AddendaChange
    {
        public virtual string ChangeId { get; set; }
        public virtual string ChangeType { get; set; }
        public virtual int? TargetSeq { get; set; }
        public virtual string ItemNumber { get; set; }
        public virtual string ItemName { get; set; }
        public virtual string Field { get; set; }
        public virtual string OldValue { get; set; }
        public virtual string NewValue { get; set; }
        public virtual string Description { get; set; }
        public virtual string Status { get; set; }
    }

    public partial class AddendaChangeSet
    {
        public virtual string ChangeSetId { get; set; }
        public virtual int SourceRfpDocumentID { get; set; }
        public virtual string SourceFileName { get; set; }
        public virtual string DocumentType { get; set; }
        public virtual DateTime? ExtractedAtUtc { get; set; }
        public virtual string Summary { get; set; }
        public virtual List<AddendaChange> Changes { get; set; } = [];
    }

    public partial class ProjectProposal
    {
        public virtual int RfpDocumentID { get; set; }
        public virtual string Mode { get; set; }
        public virtual int? ProjectID { get; set; }
        public virtual int? ChangeOrderID { get; set; }
        public virtual string ProjectName { get; set; }
        public virtual string ClientName { get; set; }
        public virtual string ProjectType { get; set; }
        public virtual string ProjectLocation { get; set; }
        public virtual string Scope { get; set; }
        public virtual string ProjectDescription { get; set; }
        public virtual int? ContractDurationDays { get; set; }
        public virtual string BidDueDate { get; set; }
        public virtual DateTime? EstimatedStartDate { get; set; }
        public virtual DateTime? EstimatedEndDate { get; set; }
        public virtual List<ProposedTask> Tasks { get; set; } = [];
        public virtual List<AddendaChangeSet> PendingAddendaDiffs { get; set; } = [];
        public virtual List<WageDeterminationResult> WageDeterminations { get; set; } = [];
    }

    public partial class ProposalDiff
    {
        public virtual List<string> TasksAdded { get; set; } = [];
        public virtual List<string> TasksRemoved { get; set; } = [];
        public virtual List<TaskDiff> Tasks { get; set; } = [];
        public virtual bool HasChanges { get; set; }
    }

    public partial class ProposedTask
    {
        public virtual int Seq { get; set; }
        public virtual string Name { get; set; }
        public virtual string Category { get; set; }
        public virtual double? Quantity { get; set; }
        public virtual string Unit { get; set; }
        public virtual string SourceItemNumber { get; set; }
        public virtual string SourceReference { get; set; }
        public virtual string Notes { get; set; }
        public virtual TaskResourcing Resourcing { get; set; }
        public virtual double? DurationDays { get; set; }
        public virtual List<int> DependsOn { get; set; } = [];
        public virtual DateTime? EstimatedStartDate { get; set; }
        public virtual DateTime? EstimatedEndDate { get; set; }
        public virtual TaskWorkPackage WorkPackage { get; set; }
        public virtual int? CreatedJobID { get; set; }
    }

    public partial class ResourcedEquipment
    {
        public virtual int EquipmentID { get; set; }
        public virtual string EquipmentName { get; set; }
        public virtual string MakeModel { get; set; }
        public virtual double? Quantity { get; set; }
        public virtual double? DurationDays { get; set; }
        public virtual double? Utilization { get; set; }
        public virtual double? FixedDays { get; set; }
        public virtual string SourceReference { get; set; }
        public virtual string Notes { get; set; }
        public virtual bool IsInCatalog { get; set; }
        public virtual int SuggestedEquipmentID { get; set; }
        public virtual string SuggestedEquipmentName { get; set; }
    }

    public partial class ResourcedMaterial
    {
        public virtual int MaterialID { get; set; }
        public virtual string MaterialName { get; set; }
        public virtual string MakeModel { get; set; }
        public virtual double? Quantity { get; set; }
        public virtual double? QuantityPerUnit { get; set; }
        public virtual string Unit { get; set; }
        public virtual string SourceReference { get; set; }
        public virtual string Notes { get; set; }
        public virtual bool IsInCatalog { get; set; }
        public virtual int SuggestedMaterialID { get; set; }
        public virtual string SuggestedMaterialName { get; set; }
    }

    public partial class ResourcedPosition
    {
        public virtual string PositionTag { get; set; }
        public virtual double? Hours { get; set; }
        public virtual double? CrewSize { get; set; }
        public virtual double? Utilization { get; set; }
        public virtual double? FixedDays { get; set; }
        public virtual int? Headcount { get; set; }
        public virtual string SourceReference { get; set; }
        public virtual string Notes { get; set; }
        public virtual bool IsInCatalog { get; set; }
        public virtual int? ContactID { get; set; }
    }

    public partial class RfpApproveRequest
    {
        public virtual Guid RfpDocumentUID { get; set; }
        public virtual ProjectProposal Proposal { get; set; }
    }

    public partial class RfpApproveResponse
    {
        public virtual ResponseStatus ResponseStatus { get; set; }
        public virtual int RfpDocumentID { get; set; }
        public virtual int ProjectID { get; set; }
        public virtual Guid ProjectUID { get; set; }
        public virtual int RfpApprovalID { get; set; }
        public virtual List<int> JobIDs { get; set; } = [];
        public virtual int OpenPositionCount { get; set; }
        public virtual ProposalDiff Diff { get; set; }
    }

    public partial class TaskDiff
    {
        public virtual string TaskName { get; set; }
        public virtual List<string> PositionsAdded { get; set; } = [];
        public virtual List<string> PositionsRemoved { get; set; } = [];
        public virtual List<string> PositionsStaffed { get; set; } = [];
        public virtual List<int> EquipmentAdded { get; set; } = [];
        public virtual List<int> EquipmentRemoved { get; set; } = [];
        public virtual List<int> MaterialsAdded { get; set; } = [];
        public virtual List<int> MaterialsRemoved { get; set; } = [];
        public virtual bool HasChanges { get; set; }
    }

    public partial class TaskResourcing
    {
        public virtual List<ResourcedPosition> Positions { get; set; } = [];
        public virtual List<ResourcedEquipment> Equipment { get; set; } = [];
        public virtual List<ResourcedMaterial> Materials { get; set; } = [];
        public virtual double? ResourcedForQuantity { get; set; }
        public virtual double? ProductionRatePerDay { get; set; }
        public virtual double? FixedDays { get; set; }
    }

    public partial class TaskWorkPackage
    {
        public virtual string Scope { get; set; }
        public virtual string LimitsOfWork { get; set; }
        public virtual List<WorkPackageSpecRef> SpecRefs { get; set; } = [];
        public virtual List<string> Constraints { get; set; } = [];
        public virtual List<string> HoldPoints { get; set; } = [];
        public virtual List<string> DefinitionOfDone { get; set; } = [];
        public virtual string SafetyNote { get; set; }
        public virtual string RfpRef { get; set; }
        public virtual int? Confidence { get; set; }
        public virtual string SpecBook { get; set; }
        public virtual string UserScope { get; set; }
        public virtual List<int> DodRemoved { get; set; } = [];
        public virtual List<string> DodExtra { get; set; } = [];
        public virtual bool UserEdited { get; set; }
        public virtual List<string> DodChecked { get; set; } = [];
        public virtual string RedraftNote { get; set; }
    }

    public partial class WageClassification
    {
        public virtual string Title { get; set; }
        public virtual decimal? BaseRate { get; set; }
        public virtual decimal? FringeRate { get; set; }
        public virtual string ParishNote { get; set; }
        public virtual string SourceLine { get; set; }
        public virtual decimal? BenchmarkFringeRate { get; set; }
        public virtual string FringeCompareNote { get; set; }
    }

    public partial class WageDeterminationResult
    {
        public virtual int SourceRfpDocumentID { get; set; }
        public virtual string SourceFileName { get; set; }
        public virtual string WdNumber { get; set; }
        public virtual DateTime? ExtractedAtUtc { get; set; }
        public virtual List<WageClassification> Classifications { get; set; } = [];
        public virtual string Source { get; set; }
        public virtual bool IsTrustworthy { get; set; }
        public virtual decimal? ExecutiveOrderFloor { get; set; }
        public virtual string PublishedDate { get; set; }
        public virtual string ProjectParish { get; set; }
        public virtual List<string> Warnings { get; set; } = [];
    }

    public partial class WorkPackageSpecRef
    {
        public virtual string Section { get; set; }
        public virtual string Title { get; set; }
    }

}

C# RfpApproveRequest 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/Rfp/{RfpDocumentUID}/Approve HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	RfpDocumentUID: 00000000000000000000000000000000,
	Proposal: 
	{
		RfpDocumentID: 0,
		Mode: String,
		ProjectID: 0,
		ChangeOrderID: 0,
		ProjectName: String,
		ClientName: String,
		ProjectType: String,
		ProjectLocation: String,
		Scope: String,
		ProjectDescription: String,
		ContractDurationDays: 0,
		BidDueDate: String,
		EstimatedStartDate: 0001-01-01,
		EstimatedEndDate: 0001-01-01,
		Tasks: 
		[
			{
				Seq: 0,
				Name: String,
				Category: String,
				Quantity: 0,
				Unit: String,
				SourceItemNumber: String,
				SourceReference: String,
				Notes: String,
				Resourcing: 
				{
					Positions: 
					[
						{
							PositionTag: String,
							Hours: 0,
							CrewSize: 0,
							Utilization: 0,
							FixedDays: 0,
							Headcount: 0,
							SourceReference: String,
							Notes: String,
							IsInCatalog: False,
							ContactID: 0
						}
					],
					Equipment: 
					[
						{
							EquipmentID: 0,
							EquipmentName: String,
							MakeModel: String,
							Quantity: 0,
							DurationDays: 0,
							Utilization: 0,
							FixedDays: 0,
							SourceReference: String,
							Notes: String,
							IsInCatalog: False,
							SuggestedEquipmentID: 0,
							SuggestedEquipmentName: String
						}
					],
					Materials: 
					[
						{
							MaterialID: 0,
							MaterialName: String,
							MakeModel: String,
							Quantity: 0,
							QuantityPerUnit: 0,
							Unit: String,
							SourceReference: String,
							Notes: String,
							IsInCatalog: False,
							SuggestedMaterialID: 0,
							SuggestedMaterialName: String
						}
					],
					ResourcedForQuantity: 0,
					ProductionRatePerDay: 0,
					FixedDays: 0
				},
				DurationDays: 0,
				DependsOn: 
				[
					0
				],
				EstimatedStartDate: 0001-01-01,
				EstimatedEndDate: 0001-01-01,
				WorkPackage: 
				{
					Scope: String,
					LimitsOfWork: String,
					SpecRefs: 
					[
						{
							Section: String,
							Title: String
						}
					],
					Constraints: 
					[
						String
					],
					HoldPoints: 
					[
						String
					],
					DefinitionOfDone: 
					[
						String
					],
					SafetyNote: String,
					RfpRef: String,
					Confidence: 0,
					SpecBook: String,
					UserScope: String,
					DodRemoved: 
					[
						0
					],
					DodExtra: 
					[
						String
					],
					UserEdited: False,
					DodChecked: 
					[
						String
					],
					RedraftNote: String
				},
				CreatedJobID: 0
			}
		],
		PendingAddendaDiffs: 
		[
			{
				ChangeSetId: String,
				SourceRfpDocumentID: 0,
				SourceFileName: String,
				DocumentType: String,
				ExtractedAtUtc: 0001-01-01,
				Summary: String,
				Changes: 
				[
					{
						ChangeId: String,
						ChangeType: String,
						TargetSeq: 0,
						ItemNumber: String,
						ItemName: String,
						Field: String,
						OldValue: String,
						NewValue: String,
						Description: String,
						Status: String
					}
				]
			}
		],
		WageDeterminations: 
		[
			{
				SourceRfpDocumentID: 0,
				SourceFileName: String,
				WdNumber: String,
				ExtractedAtUtc: 0001-01-01,
				Classifications: 
				[
					{
						Title: String,
						BaseRate: 0,
						FringeRate: 0,
						ParishNote: String,
						SourceLine: String,
						BenchmarkFringeRate: 0,
						FringeCompareNote: String
					}
				],
				Source: String,
				IsTrustworthy: False,
				ExecutiveOrderFloor: 0,
				PublishedDate: String,
				ProjectParish: String,
				Warnings: 
				[
					String
				]
			}
		]
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
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,
	ProjectID: 0,
	ProjectUID: 00000000000000000000000000000000,
	RfpApprovalID: 0,
	JobIDs: 
	[
		0
	],
	OpenPositionCount: 0,
	Diff: 
	{
		TasksAdded: 
		[
			String
		],
		TasksRemoved: 
		[
			String
		],
		Tasks: 
		[
			{
				TaskName: String,
				PositionsAdded: 
				[
					String
				],
				PositionsRemoved: 
				[
					String
				],
				PositionsStaffed: 
				[
					String
				],
				EquipmentAdded: 
				[
					0
				],
				EquipmentRemoved: 
				[
					0
				],
				MaterialsAdded: 
				[
					0
				],
				MaterialsRemoved: 
				[
					0
				],
				HasChanges: True
			}
		],
		HasChanges: True
	}
}