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 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; } = [];
    }

}

C# RfpApproveRequest DTOs

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

HTTP + OTHER

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/jsonl
Content-Type: text/jsonl
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/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,"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}}