using PartSource.Entities.Nexpart; using PartSource.Services; using System.Threading.Tasks; using System.Web.Http; namespace PartSource.Controllers { [RoutePrefix("vehicles")] public class VehiclesController : BaseNexpartController { private readonly NexpartService _nexpartService; public VehiclesController(NexpartService nexpartService) { this._nexpartService = nexpartService; } [HttpGet] [Route("types")] public async Task GetVehicleTypes() { VehiclesController vehiclesController = this; VehicleTypesGetResponse response = await vehiclesController._nexpartService.SendRequest(new VehicleTypesGet()); return vehiclesController.NexpartResponse(response); } [HttpGet] [Route("makes")] public async Task GetMakes() { VehiclesController vehiclesController = this; MakeSearch requestContent = new MakeSearch() { VehicleTypeId = new uint[3] { 5U, 6U, 7U } }; MakeSearchResponse response = await vehiclesController._nexpartService.SendRequest(requestContent); return vehiclesController.NexpartResponse(response); } [HttpGet] [Route("makes/vehicletypeid/{vehicleTypeId}")] public async Task GetMakes(uint vehicleTypeId) { VehiclesController vehiclesController = this; MakeSearch requestContent = new MakeSearch() { VehicleTypeId = new uint[1] { vehicleTypeId } }; MakeSearchResponse response = await vehiclesController._nexpartService.SendRequest(requestContent); return vehiclesController.NexpartResponse(response); } [HttpGet] [Route("models/makeid/{makeId}/modelyear/{year}")] public async Task GetModels(uint makeId, uint year) { VehiclesController vehiclesController = this; ModelSearch requestContent = new ModelSearch() { MakeId = makeId, Year = year, VehicleTypeId = new uint[3] { 5U, 6U, 7U } }; ModelSearchResponse response = await vehiclesController._nexpartService.SendRequest(requestContent); return vehiclesController.NexpartResponse(response); } [HttpGet] [Route("models/makeid/{makeId}/modelyear/{year}/vehicletypeid/{vehicleTypeId}")] public async Task GetModels(uint makeId, uint year, uint vehicleTypeId) { VehiclesController vehiclesController = this; ModelSearch requestContent = new ModelSearch() { MakeId = makeId, Year = year, VehicleTypeId = new uint[1] { vehicleTypeId } }; ModelSearchResponse response = await vehiclesController._nexpartService.SendRequest(requestContent); return vehiclesController.NexpartResponse(response); } [HttpGet] [Route("basevehicle/makeid/{makeId}/modelid/{modelId}/modelyear/{year}")] public async Task GetBaseVehicle(uint makeId, uint modelId, uint year) { VehiclesController vehiclesController = this; BaseVehicleDetailLookup requestContent = new BaseVehicleDetailLookup() { MakeId = makeId, ModelId = modelId, Year = year }; BaseVehicleDetailLookupResponse response = await vehiclesController._nexpartService.SendRequest(requestContent); return vehiclesController.NexpartResponse(response); } [HttpGet] [Route("engines/basevehicleid/{baseVehicleId}")] public async Task GetEngines(uint baseVehicleId) { VehiclesController vehiclesController = this; EngineSearch requestContent = new EngineSearch() { VehicleIdentifier = new VehicleIdentifier() { BaseVehicleId = baseVehicleId } }; EngineSearchResponse response = await vehiclesController._nexpartService.SendRequest(requestContent); return vehiclesController.NexpartResponse(response); } } }