133 lines
3.1 KiB
C#
133 lines
3.1 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore.Metadata.Internal;
|
|
using PartSource.Data.Dtos;
|
|
using PartSource.Data.Models;
|
|
using PartSource.Services;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace PartSource.Api.Controllers
|
|
{
|
|
[Route("v2/[controller]")]
|
|
[ApiController]
|
|
public class VehiclesController : BaseApiController
|
|
{
|
|
private readonly VehicleService _vehicleService;
|
|
|
|
public VehiclesController(VehicleService vehicleService)
|
|
{
|
|
_vehicleService = vehicleService;
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("")]
|
|
public async Task<ActionResult> GetVehicles([FromQuery] Vehicle vehicleQuery)
|
|
{
|
|
IList<Vehicle> vehicles = await _vehicleService.GetVehicles(vehicleQuery);
|
|
|
|
return ApiResponse(vehicles);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("{id}")]
|
|
public async Task<ActionResult> GetVehicleById(int id)
|
|
{
|
|
Vehicle vehicle = await _vehicleService.GetVehicleById(id);
|
|
|
|
return ApiResponse(vehicle);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("makes")]
|
|
public async Task<ActionResult> GetMakes([FromQuery] VehicleMake vehicleMake)
|
|
{
|
|
IList<VehicleMake> makes = await _vehicleService.GetMakes(vehicleMake);
|
|
|
|
return ApiResponse(makes);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("makes/{id}")]
|
|
public async Task<ActionResult> GetMakeById(int id)
|
|
{
|
|
VehicleMake make = await _vehicleService.GetMakeById(id);
|
|
|
|
return ApiResponse(make);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("models")]
|
|
public async Task<ActionResult> GetModels([FromQuery] VehicleModel vehicleModel)
|
|
{
|
|
IList<VehicleModel> models = await _vehicleService.GetModels(vehicleModel);
|
|
|
|
return ApiResponse(models);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("models/{id}")]
|
|
public async Task<ActionResult> GetModelById(int id)
|
|
{
|
|
VehicleModel model = await _vehicleService.GetModelById(id);
|
|
|
|
return ApiResponse(model);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("basevehicles")]
|
|
public async Task<ActionResult> GetBaseVehicles([FromQuery] BaseVehicle baseVehicle)
|
|
{
|
|
IList<BaseVehicle> baseVehicles = await _vehicleService.GetBaseVehicles(baseVehicle);
|
|
|
|
return ApiResponse(baseVehicles);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("basevehicles/{id}")]
|
|
public async Task<ActionResult> GetBaseVehicleById(int id)
|
|
{
|
|
BaseVehicle baseVehicle = await _vehicleService.GetBaseVehicleById(id);
|
|
|
|
return ApiResponse(baseVehicle);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("engines")]
|
|
public async Task<ActionResult> GetEngines([FromQuery] Engine engine)
|
|
{
|
|
IList<Engine> engines = await _vehicleService.GetEngines(engine);
|
|
|
|
return ApiResponse(engines);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("engines/{id}")]
|
|
public async Task<ActionResult> GetEngineById(int id)
|
|
{
|
|
EngineDto engine = await _vehicleService.GetEngineById(id);
|
|
|
|
return ApiResponse(engine);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("submodels")]
|
|
public async Task<ActionResult> GetSubmodels([FromQuery] Submodel submodelQuery)
|
|
{
|
|
IList<Submodel> submodels = await _vehicleService.GetSubmodels(submodelQuery);
|
|
|
|
return ApiResponse(submodels);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Route("submodels/{id}")]
|
|
public async Task<ActionResult> GetSubmodels(int id)
|
|
{
|
|
SubmodelDto submodel = await _vehicleService.GetSubmodelById(id);
|
|
|
|
return ApiResponse(submodel);
|
|
}
|
|
}
|
|
}
|