| Requires any of the roles: | Agent, Administrator |
| 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 ProjectProposal
{
public virtual int RfpDocumentID { 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 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 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 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 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 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; } = [];
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
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/csv
Content-Type: text/csv
Content-Length: length
{"RfpDocumentUID":"00000000000000000000000000000000","Proposal":{"RfpDocumentID":0,"ProjectName":"String","ClientName":"String","ProjectType":"String","ProjectLocation":"String","Scope":"String","ProjectDescription":"String","ContractDurationDays":0,"BidDueDate":"String","EstimatedStartDate":"0001-01-01T00:00:00.0000000","EstimatedEndDate":"0001-01-01T00:00:00.0000000","Tasks":[{"Seq":0,"Name":"String","Category":"String","Quantity":0,"Unit":"String","SourceItemNumber":"String","SourceReference":"String","Notes":"String","Resourcing":{"Positions":[{"PositionTag":"String","Hours":0,"Headcount":0,"SourceReference":"String","Notes":"String","IsInCatalog":false,"ContactID":0}],"Equipment":[{"EquipmentID":0,"EquipmentName":"String","MakeModel":"String","Quantity":0,"DurationDays":0,"SourceReference":"String","Notes":"String","IsInCatalog":false,"SuggestedEquipmentID":0,"SuggestedEquipmentName":"String"}],"Materials":[{"MaterialID":0,"MaterialName":"String","MakeModel":"String","Quantity":0,"Unit":"String","SourceReference":"String","Notes":"String","IsInCatalog":false,"SuggestedMaterialID":0,"SuggestedMaterialName":"String"}]},"DurationDays":0,"DependsOn":[0],"EstimatedStartDate":"0001-01-01T00:00:00.0000000","EstimatedEndDate":"0001-01-01T00:00:00.0000000"}]}}
HTTP/1.1 200 OK
Content-Type: text/csv
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}}