| Requires any of the roles: | Agent, Administrator |
| POST,OPTIONS | /v1/Rfp/PricePreview |
|---|
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 CostRange
{
public virtual double Min { get; set; }
public virtual double Max { get; set; }
public virtual double Mid { get; set; }
}
public partial class PricedEquipment
{
public virtual int EquipmentID { get; set; }
public virtual string EquipmentName { get; set; }
public virtual double Quantity { get; set; }
public virtual double? DurationDays { get; set; }
public virtual string RateType { get; set; }
public virtual double? BilledRate { get; set; }
public virtual double? CostRate { get; set; }
public virtual bool HasRate { get; set; }
public virtual bool IsInCatalog { get; set; }
public virtual double Cost { get; set; }
public virtual double CompanyCost { get; set; }
public virtual double Margin { get; set; }
}
public partial class PricedMaterial
{
public virtual int MaterialID { get; set; }
public virtual string MaterialName { get; set; }
public virtual double Quantity { get; set; }
public virtual double? UnitCost { get; set; }
public virtual bool HasRate { get; set; }
public virtual bool IsInCatalog { get; set; }
public virtual double Cost { get; set; }
}
public partial class PricedPosition
{
public virtual string PositionTag { get; set; }
public virtual double Hours { get; set; }
public virtual bool HasInternalRate { get; set; }
public virtual double? RateMin { get; set; }
public virtual double? RateMax { get; set; }
public virtual double? RateAvg { get; set; }
public virtual int ContactCount { get; set; }
public virtual CostRange Cost { get; set; }
public virtual double? MarketRateReference { get; set; }
}
public partial class PricedProposal
{
public virtual int RfpDocumentID { get; set; }
public virtual string ProjectName { get; set; }
public virtual string Currency { get; set; }
public virtual List<PricedTask> Tasks { get; set; } = [];
public virtual CostRange Total { get; set; }
public virtual int PositionsNeedingRate { get; set; }
public virtual int EquipmentNotInCatalog { get; set; }
public virtual int MaterialsNotInCatalog { get; set; }
public virtual int PositionsNotInCatalog { get; set; }
public virtual double EquipmentMargin { get; set; }
}
public partial class PricedTask
{
public virtual string Name { get; set; }
public virtual string Category { get; set; }
public virtual List<PricedPosition> Positions { get; set; } = [];
public virtual List<PricedEquipment> Equipment { get; set; } = [];
public virtual List<PricedMaterial> Materials { get; set; } = [];
public virtual CostRange Subtotal { get; set; }
}
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 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 RfpPricePreviewRequest
{
public virtual ProjectProposal Proposal { get; set; }
}
public partial class RfpPricingResponse
{
public virtual ResponseStatus ResponseStatus { get; set; }
public virtual int RfpDocumentID { get; set; }
public virtual PricedProposal Pricing { 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; } = [];
}
}
C# RfpPricePreviewRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/Rfp/PricePreview HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"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/jsonl
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,"Pricing":{"RfpDocumentID":0,"ProjectName":"String","Currency":"String","Tasks":[{"Name":"String","Category":"String","Positions":[{"PositionTag":"String","Hours":0,"HasInternalRate":false,"RateMin":0,"RateMax":0,"RateAvg":0,"ContactCount":0,"Cost":{"Min":0,"Max":0,"Mid":0},"MarketRateReference":0}],"Equipment":[{"EquipmentID":0,"EquipmentName":"String","Quantity":0,"DurationDays":0,"RateType":"String","BilledRate":0,"CostRate":0,"HasRate":false,"IsInCatalog":false,"Cost":0,"CompanyCost":0,"Margin":0}],"Materials":[{"MaterialID":0,"MaterialName":"String","Quantity":0,"UnitCost":0,"HasRate":false,"IsInCatalog":false,"Cost":0}],"Subtotal":{"Min":0,"Max":0,"Mid":0}}],"Total":{"Min":0,"Max":0,"Mid":0},"PositionsNeedingRate":0,"EquipmentNotInCatalog":0,"MaterialsNotInCatalog":0,"PositionsNotInCatalog":0,"EquipmentMargin":0}}