160 lines
5.4 KiB
C#
160 lines
5.4 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using PartSource.Data.Nexpart;
|
|
using PartSource.Services;
|
|
using System.Threading.Tasks;
|
|
using System.Web.Http;
|
|
|
|
namespace PartSource.Api.Controllers
|
|
{
|
|
[Route("[controller]")]
|
|
[ApiController]
|
|
public class NexpartVehiclesController : BaseNexpartController
|
|
{
|
|
private readonly NexpartService _nexpartService;
|
|
|
|
public NexpartVehiclesController(NexpartService nexpartService)
|
|
{
|
|
this._nexpartService = nexpartService;
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("types")]
|
|
public async Task<ActionResult> GetVehicleTypes()
|
|
{
|
|
NexpartVehiclesController vehiclesController = this;
|
|
VehicleTypesGetResponse response = await vehiclesController._nexpartService.SendRequest<VehicleTypesGet, VehicleTypesGetResponse>(new VehicleTypesGet());
|
|
return vehiclesController.NexpartResponse<VehicleTypesGetResponse, VehicleTypes>(response);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("makes")]
|
|
public async Task<ActionResult> GetMakes()
|
|
{
|
|
NexpartVehiclesController vehiclesController = this;
|
|
MakeSearch requestContent = new MakeSearch()
|
|
{
|
|
VehicleTypeId = new int[] { 5, 6, 7 }
|
|
};
|
|
MakeSearchResponse response = await vehiclesController._nexpartService.SendRequest<MakeSearch, MakeSearchResponse>(requestContent);
|
|
return vehiclesController.NexpartResponse<MakeSearchResponse, Makes>(response);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("makes/vehicletypeid/{vehicleTypeId}")]
|
|
public async Task<ActionResult> GetMakes(int vehicleTypeId)
|
|
{
|
|
NexpartVehiclesController vehiclesController = this;
|
|
MakeSearch requestContent = new MakeSearch()
|
|
{
|
|
VehicleTypeId = new int[] { vehicleTypeId }
|
|
};
|
|
MakeSearchResponse response = await vehiclesController._nexpartService.SendRequest<MakeSearch, MakeSearchResponse>(requestContent);
|
|
return vehiclesController.NexpartResponse<MakeSearchResponse, Makes>(response);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("models/makeid/{makeId}/modelyear/{year}")]
|
|
public async Task<ActionResult> GetModels(int makeId, int year)
|
|
{
|
|
NexpartVehiclesController vehiclesController = this;
|
|
ModelSearch requestContent = new ModelSearch()
|
|
{
|
|
MakeId = makeId,
|
|
Year = year,
|
|
VehicleTypeId = new int[] { 5, 6, 7 }
|
|
};
|
|
ModelSearchResponse response = await vehiclesController._nexpartService.SendRequest<ModelSearch, ModelSearchResponse>(requestContent);
|
|
return vehiclesController.NexpartResponse<ModelSearchResponse, Models[]>(response);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("models/makeid/{makeId}/modelyear/{year}/vehicletypeid/{vehicleTypeId}")]
|
|
public async Task<ActionResult> GetModels(int makeId, int year, int vehicleTypeId)
|
|
{
|
|
NexpartVehiclesController vehiclesController = this;
|
|
ModelSearch requestContent = new ModelSearch()
|
|
{
|
|
MakeId = makeId,
|
|
Year = year,
|
|
VehicleTypeId = new int[] { vehicleTypeId }
|
|
};
|
|
ModelSearchResponse response = await vehiclesController._nexpartService.SendRequest<ModelSearch, ModelSearchResponse>(requestContent);
|
|
return vehiclesController.NexpartResponse<ModelSearchResponse, Models[]>(response);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("basevehicle/makeid/{makeId}/modelid/{modelId}/modelyear/{year}")]
|
|
public async Task<ActionResult> GetBaseVehicle(int makeId, int modelId, int year)
|
|
{
|
|
BaseVehicleDetailLookup requestContent = new BaseVehicleDetailLookup()
|
|
{
|
|
MakeId = makeId,
|
|
ModelId = modelId,
|
|
Year = year
|
|
};
|
|
BaseVehicleDetailLookupResponse response = await _nexpartService.SendRequest<BaseVehicleDetailLookup, BaseVehicleDetailLookupResponse>(requestContent);
|
|
return NexpartResponse<BaseVehicleDetailLookupResponse, BaseVehicleDetail>(response);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("engines/basevehicleid/{baseVehicleId}")]
|
|
[Route("engines/basevehicleid/{baseVehicleId}/submodelid/{subModelId}")]
|
|
public async Task<ActionResult> GetEngines(int baseVehicleId, int? subModelId = null)
|
|
{
|
|
EngineSearch requestContent = new EngineSearch()
|
|
{
|
|
VehicleIdentifier = new VehicleIdentifier()
|
|
{
|
|
BaseVehicleId = baseVehicleId
|
|
},
|
|
SubModelId = subModelId
|
|
};
|
|
EngineSearchResponse response = await _nexpartService.SendRequest<EngineSearch, EngineSearchResponse>(requestContent);
|
|
return NexpartResponse<EngineSearchResponse, Engines>(response);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("trim/makeid/{makeId}/modelid/{modelId}/modelyear/{year}")]
|
|
public async Task<ActionResult> GetTrim(int makeId, int modelId, int year)
|
|
{
|
|
SubModelSearch requestContent = new SubModelSearch()
|
|
{
|
|
MakeId = makeId,
|
|
ModelId = modelId,
|
|
Year = year,
|
|
RegionId = 2
|
|
};
|
|
SubModelSearchResponse response = await _nexpartService.SendRequest<SubModelSearch, SubModelSearchResponse>(requestContent);
|
|
return NexpartResponse<SubModelSearchResponse, SubModels>(response);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("/detail/basevehicleid/{baseVehicleId}/submodelid/{subModelId}/engineconfigid/{engineConfigId}")]
|
|
public async Task<ActionResult> GetVehicleId(int baseVehicleId, int subModelId, int engineConfigId)
|
|
{
|
|
VehicleIdSearch requestContent = new VehicleIdSearch
|
|
{
|
|
VehicleIdentifier = new VehicleIdentifier()
|
|
{
|
|
BaseVehicleId = baseVehicleId,
|
|
EngineConfigId = engineConfigId
|
|
},
|
|
Criterion = new Criterion[1]{
|
|
new Criterion
|
|
{
|
|
Attribute = "SUB_MODEL",
|
|
Id = subModelId
|
|
}
|
|
},
|
|
RegionId = new RegionId
|
|
{
|
|
Value = 2
|
|
},
|
|
};
|
|
|
|
VehicleIdSearchResponse response = await _nexpartService.SendRequest<VehicleIdSearch, VehicleIdSearchResponse>(requestContent);
|
|
return NexpartResponse<VehicleIdSearchResponse, VehicleDetail>(response);
|
|
}
|
|
}
|
|
}
|