POST | /v1/VehicleWithOptimal | Get Vehicle by Vin and a more optimal option if available |
---|
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.Vehicles;
using Mercedes.Agency.API.Shared.POCO;
using Mercedes.OS.Vehicle.Shared.POCO.Filters.v2;
using Mercedes.Agency.API.Shared.Enums;
using Mercedes.OS.Vehicle.Shared.POCO;
namespace Mercedes.Agency.API.Shared.POCO
{
public partial class Engine
{
public virtual int? Id { get; set; }
public virtual string Badge { get; set; }
}
public partial class Media
{
public virtual bool NoImage { get; set; }
public virtual string MainImageUrl { 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 Retailer
{
public virtual int Id { get; set; }
public virtual string GssnId { get; set; }
public virtual string Description { get; set; }
public virtual string Street { get; set; }
public virtual string City { get; set; }
public virtual string Postcode { get; set; }
public virtual string GoogleMapPostcode { get; set; }
public virtual string Phone { get; set; }
public virtual string Fax { get; set; }
public virtual string Email { get; set; }
public virtual string Website { get; set; }
public virtual string RetailerGroupId { get; set; }
public virtual string RetailerGroupName { get; set; }
public virtual bool IsOnline { get; set; }
public virtual bool IsNewCarRetailer { get; set; }
public virtual bool IsUsedCarRetailer { get; set; }
public virtual bool IsCentralRetailer { get; set; }
public virtual bool ChatEnabled { get; set; }
public virtual bool TradeInEnabled { get; set; }
public virtual bool smart { get; set; }
public virtual string DisplayPhoneNumberNew { get; set; }
public virtual string DisplayPhoneNumberUsed { get; set; }
public virtual decimal Latitude { get; set; }
public virtual decimal Longitude { get; set; }
public virtual string smartDescription { get; set; }
public virtual string smartWebsite { get; set; }
public virtual string smartPhone { get; set; }
public virtual string LegacyId { get; set; }
public virtual bool Agent { get; set; }
public virtual int MarketAreaId { get; set; }
public virtual string DigitalLoungeParentGssnId { get; set; }
public virtual bool SendLeadsToDigitalLoungeParent { get; set; }
public virtual RetailerOpeningTimes OpeningTimes { get; set; }
}
public partial class RetailerOpeningTime
{
public virtual string Day { get; set; }
public virtual string OpenFrom { get; set; }
public virtual string OpenTo { get; set; }
public virtual string Special { get; set; }
}
public partial class RetailerOpeningTimes
{
public virtual List<RetailerOpeningTime> New { get; set; } = [];
public virtual List<RetailerOpeningTime> Used { get; set; } = [];
}
public partial class VehicleAttribute
{
public virtual string Description { get; set; }
public virtual string Value { get; set; }
}
public partial class VehicleConsumption
{
public virtual int Id { get; set; }
public virtual decimal Lkm { get; set; }
public virtual decimal Mpg { get; set; }
}
public partial class VehicleDetailDto
{
public virtual string BodyStyle { get; set; }
public virtual string Vin { get; set; }
public virtual string Description { get; set; }
public virtual string Colour { get; set; }
public virtual string ColourCode { get; set; }
public virtual string ColourDescription { get; set; }
public virtual string ColourGroup { get; set; }
public virtual string Model { get; set; }
public virtual string CommissionNumber { get; set; }
public virtual int? BrandId { get; set; }
public virtual Brand Brand { get; set; }
public virtual Engine Engine { get; set; }
public virtual string EngineBadge { get; set; }
public virtual Media Media { get; set; }
public virtual string Line { get; set; }
public virtual string UpholsteryCode { get; set; }
public virtual string UpholsteryType { get; set; }
public virtual string Upholstery { get; set; }
public virtual string UpholsteryDescription { get; set; }
public virtual List<string> AvailablePackages { get; set; } = [];
public virtual List<string> Packages { get; set; } = [];
public virtual decimal P11D { get; set; }
public virtual DateTime? PortArrivalDate { get; set; }
public virtual List<Price> Prices { get; set; } = [];
public virtual string TransmissionType { get; set; }
public virtual string FuelType { get; set; }
public virtual string VehicleClass { get; set; }
public virtual string ProductRange { get; set; }
public virtual string VehicleType { get; set; }
public virtual decimal? Emission { get; set; }
public virtual bool IsAvailableOnline { get; set; }
public virtual bool UnderOffer { get; set; }
public virtual bool IsExcluded { get; set; }
public virtual bool IsSellable { get; set; }
public virtual bool OnHold { get; set; }
public virtual decimal? ElectricConsumption { get; set; }
public virtual decimal? ElectricRange { get; set; }
public virtual string ImageUrl { get; set; }
public virtual string Baumuster { get; set; }
public virtual Retailer Retailer { get; set; }
public virtual string Bm7NST { get; set; }
public virtual decimal OTR { get; set; }
public virtual decimal ActualPrice { get; set; }
public virtual bool IsDisplayStock { get; set; }
public virtual int? DisplayRetailerId { get; set; }
public virtual string DisplayRetailer { get; set; }
public virtual string DisplayRetailerGssnId { get; set; }
public virtual string DisplayRetailerMarketAreaId { get; set; }
public virtual bool IsSmartDisplayRetailer { get; set; }
public virtual bool IsSpecialistCar { get; set; }
public virtual int? Age { get; set; }
public virtual bool Secured { get; set; }
public virtual bool IsHOBackOrderAccountVehicle { get; set; }
public virtual bool IsAllocatedToBackOrder { get; set; }
public virtual string UsageCode { get; set; }
public virtual decimal? EmissionCombined { get; set; }
public virtual string NormalisedEmissionDirective { get; set; }
public virtual bool HasMildHybridEquipmentCode { get; set; }
public virtual decimal RetailPriceExVat { get; set; }
public virtual decimal RetailPrice_IncVAT { get; set; }
public virtual decimal RetailPrice_ExVAT { get; set; }
public virtual int ModelId { get; set; }
public virtual string VID { get; set; }
public virtual string ProductionDate { get; set; }
public virtual string FullModelYearCode { get; set; }
public virtual string ChassisNumber { get; set; }
public virtual bool EligibleForIntegratedServiceCare { get; set; }
public virtual string AccountType { get; set; }
public virtual VehicleConsumption ConsumptionCombined { get; set; }
public virtual VehicleConsumption ConsumptionExtraUrban { get; set; }
public virtual VehicleConsumption ConsumptionUrban { get; set; }
public virtual VehicleConsumption WltpFuelConsumptionCombined { get; set; }
public virtual VehicleConsumption WltpFuelConsumptionExtraHigh { get; set; }
public virtual VehicleConsumption WltpFuelConsumptionHigh { get; set; }
public virtual VehicleConsumption WltpFuelConsumptionLow { get; set; }
public virtual VehicleConsumption WltpFuelConsumptionMedium { get; set; }
public virtual List<Equipmentv2> Equipment { get; set; }
public virtual List<VehicleEquipmentCategory> EquipmentCategories { get; set; }
public virtual VehicleEmissionClass EnergyEfficiencyClass { get; set; }
public virtual List<VehicleAttribute> VehicleData { get; set; }
public virtual List<VehicleIntegratedServiceCareOption> IntegratedServiceCareOptions { get; set; } = [];
public virtual List<string> IspVehicleCustomerDescriptions { get; set; }
}
public partial class VehicleEmissionClass
{
public virtual string Colour { get; set; }
public virtual string Rating { get; set; }
}
public partial class VehicleEquipmentCategory
{
public virtual int Order { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
public virtual List<Equipmentv2> Equipment { get; set; }
}
public partial class VehicleError
{
public virtual string Field { get; set; }
public virtual string Message { get; set; }
}
public partial class VehicleIntegratedServiceCareOption
{
public virtual string OptionCode { get; set; }
public virtual string BM7NST { get; set; }
public virtual string FullModelYear { get; set; }
public virtual string IntegratedProductType { get; set; }
public virtual string CustomerDescription { get; set; }
public virtual string OneAgentProductType { get; set; }
}
}
namespace Mercedes.Agency.Orchestration.API.ServiceModel.Vehicles
{
public partial class GetVehicleResponse
{
public virtual VehicleDetailDto Vehicle { get; set; }
public virtual List<VehicleError> Errors { get; set; } = [];
}
public partial class GetVehicleWithOptimalRequest
{
public virtual string VehicleIdentifier { get; set; }
public virtual bool IncludeAllocatedToBackOrder { get; set; }
public virtual string Gssn { get; set; }
public virtual bool IsOneAdmin { get; set; }
public virtual int? MotabilityPricingId { get; set; }
}
public partial class GetVehicleWithOptimalResponse
: GetVehicleResponse
{
public virtual VehicleDetailDto OptimumVehicle { get; set; }
}
}
namespace Mercedes.OS.Vehicle.Shared.POCO
{
public partial class Equipment
{
public virtual int Id { get; set; }
public virtual string Code { get; set; }
public virtual string Description { get; set; }
}
public partial class Equipmentv2
: Equipment
{
public virtual int Importance { get; set; }
public virtual bool IsAdditional { get; set; }
}
}
namespace Mercedes.OS.Vehicle.Shared.POCO.Filters.v2
{
public partial class BodyStyle
{
public virtual int Id { get; set; }
public virtual string Description { get; set; }
public virtual List<Model> Models { get; set; }
}
public partial class Brand
{
public virtual int Id { get; set; }
public virtual string Description { get; set; }
public virtual string DisplayName { get; set; }
public virtual List<BodyStyle> BodyStyles { get; set; }
}
public partial class Model
{
public virtual int Id { get; set; }
public virtual string Description { get; set; }
public virtual string DisplayName { get; set; }
public virtual string ImageUrlSmall { get; set; }
public virtual string ImageUrlMedium { get; set; }
public virtual string ImageUrlLarge { get; set; }
public virtual bool Specialist { get; set; }
public virtual int Priority { get; set; }
public virtual bool? ExcludeFromOnlineShowroomFilters { get; set; }
}
}
C# GetVehicleWithOptimalRequest 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/VehicleWithOptimal HTTP/1.1
Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
VehicleIdentifier: String,
IncludeAllocatedToBackOrder: False,
Gssn: String,
IsOneAdmin: False,
MotabilityPricingId: 0
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { OptimumVehicle: { BodyStyle: String, Vin: String, Description: String, Colour: String, ColourCode: String, ColourDescription: String, ColourGroup: String, Model: String, CommissionNumber: String, BrandId: 0, Brand: { Id: 0, Description: String, DisplayName: String, BodyStyles: [ { Id: 0, Description: String, Models: [ { Id: 0, Description: String, DisplayName: String, ImageUrlSmall: String, ImageUrlMedium: String, ImageUrlLarge: String, Specialist: False, Priority: 0, ExcludeFromOnlineShowroomFilters: False } ] } ] }, Engine: { Id: 0, Badge: String }, EngineBadge: String, Media: { NoImage: False, MainImageUrl: String }, Line: String, UpholsteryCode: String, UpholsteryType: String, Upholstery: String, UpholsteryDescription: String, AvailablePackages: [ String ], Packages: [ String ], P11D: 0, PortArrivalDate: 0001-01-01, Prices: [ { Id: String, Description: String, Net: 0, VAT: 0, Gross: 0, Product: LIST_PRICE } ], TransmissionType: String, FuelType: String, VehicleClass: String, ProductRange: String, VehicleType: String, Emission: 0, IsAvailableOnline: False, UnderOffer: False, IsExcluded: False, IsSellable: False, OnHold: False, ElectricConsumption: 0, ElectricRange: 0, ImageUrl: String, Baumuster: String, Retailer: { Id: 0, GssnId: String, Description: String, Street: String, City: String, Postcode: String, GoogleMapPostcode: String, Phone: String, Fax: String, Email: String, Website: String, RetailerGroupId: String, RetailerGroupName: String, IsOnline: False, IsNewCarRetailer: False, IsUsedCarRetailer: False, IsCentralRetailer: False, ChatEnabled: False, TradeInEnabled: False, smart: False, DisplayPhoneNumberNew: String, DisplayPhoneNumberUsed: String, Latitude: 0, Longitude: 0, smartDescription: String, smartWebsite: String, smartPhone: String, LegacyId: String, Agent: False, MarketAreaId: 0, DigitalLoungeParentGssnId: String, SendLeadsToDigitalLoungeParent: False, OpeningTimes: { New: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ], Used: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ] } }, Bm7NST: String, OTR: 0, ActualPrice: 0, IsDisplayStock: False, DisplayRetailerId: 0, DisplayRetailer: String, DisplayRetailerGssnId: String, DisplayRetailerMarketAreaId: String, IsSmartDisplayRetailer: False, IsSpecialistCar: False, Age: 0, Secured: False, IsHOBackOrderAccountVehicle: False, IsAllocatedToBackOrder: False, UsageCode: String, EmissionCombined: 0, NormalisedEmissionDirective: String, HasMildHybridEquipmentCode: False, RetailPriceExVat: 0, RetailPrice_IncVAT: 0, RetailPrice_ExVAT: 0, ModelId: 0, VID: String, ProductionDate: String, FullModelYearCode: String, ChassisNumber: String, EligibleForIntegratedServiceCare: False, AccountType: String, ConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionExtraUrban: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionUrban: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionExtraHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionLow: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionMedium: { Id: 0, Lkm: 0, Mpg: 0 }, Equipment: [ { Importance: 0, IsAdditional: False, Id: 0, Code: String, Description: String } ], EquipmentCategories: [ { Order: 0, Code: String, Description: String, Equipment: [ { Importance: 0, IsAdditional: False, Id: 0, Code: String, Description: String } ] } ], EnergyEfficiencyClass: { Colour: String, Rating: String }, VehicleData: [ { Description: String, Value: String } ], IntegratedServiceCareOptions: [ { OptionCode: String, BM7NST: String, FullModelYear: String, IntegratedProductType: String, CustomerDescription: String, OneAgentProductType: String } ], IspVehicleCustomerDescriptions: [ String ] }, Vehicle: { BodyStyle: String, Vin: String, Description: String, Colour: String, ColourCode: String, ColourDescription: String, ColourGroup: String, Model: String, CommissionNumber: String, BrandId: 0, Brand: { Id: 0, Description: String, DisplayName: String, BodyStyles: [ { Id: 0, Description: String, Models: [ { Id: 0, Description: String, DisplayName: String, ImageUrlSmall: String, ImageUrlMedium: String, ImageUrlLarge: String, Specialist: False, Priority: 0, ExcludeFromOnlineShowroomFilters: False } ] } ] }, Engine: { Id: 0, Badge: String }, EngineBadge: String, Media: { NoImage: False, MainImageUrl: String }, Line: String, UpholsteryCode: String, UpholsteryType: String, Upholstery: String, UpholsteryDescription: String, AvailablePackages: [ String ], Packages: [ String ], P11D: 0, PortArrivalDate: 0001-01-01, Prices: [ { Id: String, Description: String, Net: 0, VAT: 0, Gross: 0, Product: LIST_PRICE } ], TransmissionType: String, FuelType: String, VehicleClass: String, ProductRange: String, VehicleType: String, Emission: 0, IsAvailableOnline: False, UnderOffer: False, IsExcluded: False, IsSellable: False, OnHold: False, ElectricConsumption: 0, ElectricRange: 0, ImageUrl: String, Baumuster: String, Retailer: { Id: 0, GssnId: String, Description: String, Street: String, City: String, Postcode: String, GoogleMapPostcode: String, Phone: String, Fax: String, Email: String, Website: String, RetailerGroupId: String, RetailerGroupName: String, IsOnline: False, IsNewCarRetailer: False, IsUsedCarRetailer: False, IsCentralRetailer: False, ChatEnabled: False, TradeInEnabled: False, smart: False, DisplayPhoneNumberNew: String, DisplayPhoneNumberUsed: String, Latitude: 0, Longitude: 0, smartDescription: String, smartWebsite: String, smartPhone: String, LegacyId: String, Agent: False, MarketAreaId: 0, DigitalLoungeParentGssnId: String, SendLeadsToDigitalLoungeParent: False, OpeningTimes: { New: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ], Used: [ { Day: String, OpenFrom: String, OpenTo: String, Special: String } ] } }, Bm7NST: String, OTR: 0, ActualPrice: 0, IsDisplayStock: False, DisplayRetailerId: 0, DisplayRetailer: String, DisplayRetailerGssnId: String, DisplayRetailerMarketAreaId: String, IsSmartDisplayRetailer: False, IsSpecialistCar: False, Age: 0, Secured: False, IsHOBackOrderAccountVehicle: False, IsAllocatedToBackOrder: False, UsageCode: String, EmissionCombined: 0, NormalisedEmissionDirective: String, HasMildHybridEquipmentCode: False, RetailPriceExVat: 0, RetailPrice_IncVAT: 0, RetailPrice_ExVAT: 0, ModelId: 0, VID: String, ProductionDate: String, FullModelYearCode: String, ChassisNumber: String, EligibleForIntegratedServiceCare: False, AccountType: String, ConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionExtraUrban: { Id: 0, Lkm: 0, Mpg: 0 }, ConsumptionUrban: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionCombined: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionExtraHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionHigh: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionLow: { Id: 0, Lkm: 0, Mpg: 0 }, WltpFuelConsumptionMedium: { Id: 0, Lkm: 0, Mpg: 0 }, Equipment: [ { Importance: 0, IsAdditional: False, Id: 0, Code: String, Description: String } ], EquipmentCategories: [ { Order: 0, Code: String, Description: String, Equipment: [ { Importance: 0, IsAdditional: False, Id: 0, Code: String, Description: String } ] } ], EnergyEfficiencyClass: { Colour: String, Rating: String }, VehicleData: [ { Description: String, Value: String } ], IntegratedServiceCareOptions: [ { OptionCode: String, BM7NST: String, FullModelYear: String, IntegratedProductType: String, CustomerDescription: String, OneAgentProductType: String } ], IspVehicleCustomerDescriptions: [ String ] }, Errors: [ { Field: String, Message: String } ] }