POST | /v1/pricingdetails | Creates a detailed pricing of a vehicle |
---|
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Mercedes.Agency.Orchestration.API.ServiceModel.Pricing;
using Mercedes.Agency.Orchestration.API.Business.Poco;
using Mercedes.Agency.API.Shared.Enums;
using Mercedes.Agency.API.Shared.POCO;
using Mercedes.Agency.Orchestration.API.Clients.AgencyApi.Responses;
namespace Mercedes.Agency.API.Shared.POCO
{
public partial class Address
{
public virtual string Property { get; set; }
public virtual string Street { get; set; }
public virtual string Town { get; set; }
public virtual string County { get; set; }
public virtual string Locality { get; set; }
public virtual string Postcode { get; set; }
}
public partial class AdvanceRentals
{
public virtual List<Option> Options { get; set; } = [];
}
public partial class Customer
: SalesforceCustomer
{
public virtual Guid? ProfileId { get; set; }
public virtual Preferences Preferences { get; set; }
}
public partial class Deposit
{
public virtual string Default { get; set; }
}
public partial class FinanceCriteria
{
public virtual string Key { get; set; }
public virtual string Name { get; set; }
public virtual string Type { get; set; }
public virtual bool IsDefault { get; set; }
public virtual Term Term { get; set; }
public virtual Deposit Deposit { get; set; }
public virtual Mileage Mileage { get; set; }
public virtual AdvanceRentals AdvanceRentals { get; set; }
public virtual bool IsPersonalised { get; set; }
public virtual string RegularPayment { get; set; }
public virtual string PartExchange { get; set; }
public virtual string Settlement { get; set; }
public virtual string CustomerType { get; set; }
public virtual VehicleType VehicleType { get; set; }
}
public partial class Mileage
{
public virtual List<Option> Options { get; set; } = [];
}
public partial class Option
{
public virtual bool IsDefault { get; set; }
public virtual int Value { get; set; }
}
public partial class OutrightPurchase
{
public virtual bool IsOutrightPurchase { get; set; }
public virtual string Reference { get; set; }
public virtual decimal DiscountRate { get; set; }
public virtual string Bm7NST { get; set; }
public virtual bool IsBackOrder { get; set; }
public virtual bool IsCOPConverter { get; set; }
}
public partial class Preferences
{
public virtual bool OptinEmail { get; set; }
public virtual bool OptinPost { get; set; }
public virtual bool OptinSMS { get; set; }
public virtual bool OptinTelephone { get; set; }
}
public partial class Price
{
public virtual string Id { get; set; }
public virtual string Description { get; set; }
public virtual decimal Net { get; set; }
public virtual decimal VAT { get; set; }
public virtual decimal Gross { get; set; }
public virtual OfferPriceProductType Product { get; set; }
}
public partial class SalesforceCustomer
: ICustomer
{
public virtual string CustomerId { get; set; }
public virtual bool IsCiam { get; set; }
public virtual string CompanyName { get; set; }
public virtual string Title { get; set; }
public virtual string Firstname { get; set; }
public virtual string Surname { get; set; }
public virtual string EmailAddress { get; set; }
public virtual string Telephone { get; set; }
public virtual Address Address { get; set; }
public virtual CustomerMode Mode { get; set; }
}
public partial class Term
{
public virtual List<Option> Options { get; set; } = [];
}
public partial class Vehicle
{
public virtual string Vin { get; set; }
}
}
namespace Mercedes.Agency.Orchestration.API.Business.Poco
{
public partial class CreateOrderBase
{
public virtual Source Source { get; set; }
public virtual string GssnId { get; set; }
public virtual string AdditionalInformation { get; set; }
public virtual bool Cash { get; set; }
public virtual bool Finance { get; set; }
public virtual Customer Customer { get; set; }
public virtual Vehicle Vehicle { get; set; }
public virtual FinanceCriteria FinanceCriteria { get; set; }
public virtual Guid? BackOrderGuid { get; set; }
public virtual string TagUrl { get; set; }
public virtual OutrightPurchase OutrightPurchase { get; set; }
public virtual bool Motability { get; set; }
public virtual int? MotabilityPricingId { get; set; }
public virtual string FinanceApplicationReference { get; set; }
public virtual bool Specialist { get; set; }
public virtual string GasId { get; set; }
public virtual int[] PersonalisedItemOfferIds { get; set; }
public virtual string SuggestedVin { get; set; }
public virtual string NonOptimumReason { get; set; }
public virtual MotabilityType MotabilityType { get; set; }
public virtual string EstimatedHandoverDate { get; set; }
}
}
namespace Mercedes.Agency.Orchestration.API.Clients.AgencyApi.Responses
{
public partial class GetPricingDetailsResponse
{
public virtual Price Price { get; set; }
}
}
namespace Mercedes.Agency.Orchestration.API.ServiceModel.Pricing
{
public partial class GetPricingDetailsRequest
: CreateOrderBase, IPost
{
}
}
C# GetPricingDetailsRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/pricingdetails HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Source: OnlineShowroom,
GssnId: String,
AdditionalInformation: String,
Cash: False,
Finance: False,
Customer:
{
ProfileId: 00000000000000000000000000000000,
Preferences:
{
OptinEmail: False,
OptinPost: False,
OptinSMS: False,
OptinTelephone: False
},
CustomerId: String,
IsCiam: False,
CompanyName: String,
Title: String,
Firstname: String,
Surname: String,
EmailAddress: String,
Telephone: String,
Address:
{
Property: String,
Street: String,
Town: String,
County: String,
Locality: String,
Postcode: String
},
Mode: Private
},
Vehicle:
{
Vin: String
},
FinanceCriteria:
{
Key: String,
Name: String,
Type: String,
IsDefault: False,
Term:
{
Options:
[
{
IsDefault: False,
Value: 0
}
]
},
Deposit:
{
Default: String
},
Mileage:
{
Options:
[
{
IsDefault: False,
Value: 0
}
]
},
AdvanceRentals:
{
Options:
[
{
IsDefault: False,
Value: 0
}
]
},
IsPersonalised: False,
RegularPayment: String,
PartExchange: String,
Settlement: String,
CustomerType: String,
VehicleType: UNASSIGNED
},
BackOrderGuid: 00000000000000000000000000000000,
TagUrl: String,
OutrightPurchase:
{
IsOutrightPurchase: False,
Reference: String,
DiscountRate: 0,
Bm7NST: String,
IsBackOrder: False,
IsCOPConverter: False
},
Motability: False,
MotabilityPricingId: 0,
FinanceApplicationReference: String,
Specialist: False,
GasId: String,
PersonalisedItemOfferIds:
[
0
],
SuggestedVin: String,
NonOptimumReason: String,
MotabilityType: PIP,
EstimatedHandoverDate: String
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { Price: { Id: String, Description: String, Net: 0, VAT: 0, Gross: 0, Product: LIST_PRICE } }