From 547c5c935c53828eaba34c1b61237e6a9bf05fd2 Mon Sep 17 00:00:00 2001 From: Tom Raterman Date: Wed, 13 Sep 2023 09:33:14 -0400 Subject: [PATCH] WIP --- PartSource.Data/Contexts/FitmentContext.cs | 4 ++- PartSource.Data/Models/VehicleFitment.cs | 27 +++++++++++++++++ PartSource.Services/FitmentService.cs | 35 +++++++++++++++++++++- 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 PartSource.Data/Models/VehicleFitment.cs diff --git a/PartSource.Data/Contexts/FitmentContext.cs b/PartSource.Data/Contexts/FitmentContext.cs index ef1c9a4..af33cc3 100644 --- a/PartSource.Data/Contexts/FitmentContext.cs +++ b/PartSource.Data/Contexts/FitmentContext.cs @@ -19,7 +19,9 @@ namespace PartSource.Data.Contexts public DbSet Vehicles { get; set; } - public DbSet Wipers { get; set; } + public DbSet VehicleFitments { get; set; } + + public DbSet Wipers { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { diff --git a/PartSource.Data/Models/VehicleFitment.cs b/PartSource.Data/Models/VehicleFitment.cs new file mode 100644 index 0000000..ed55446 --- /dev/null +++ b/PartSource.Data/Models/VehicleFitment.cs @@ -0,0 +1,27 @@ +namespace PartSource.Data.Models +{ + public class VehicleFitment + { + public string Sku { get; set; } + + public string LineCode { get; set; } + + public string PartNumber { get; set; } + + public string NoteText { get; set; } + + public int Year { get; set; } + + public string MakeName { get; set; } + + public string ModelName { get; set; } + + public string SubmodelName { get; set; } + + public int BaseVehicleId { get; set; } + + public int EngineConfigId { get; set; } + + public int VehicleToEngineConfigId { get; set; } + } +} diff --git a/PartSource.Services/FitmentService.cs b/PartSource.Services/FitmentService.cs index 38a2354..945cc30 100644 --- a/PartSource.Services/FitmentService.cs +++ b/PartSource.Services/FitmentService.cs @@ -19,7 +19,40 @@ namespace PartSource.Services _fitmentContext = fitmentContext; } - public IList GetYmmFitment(IList vehicles) + public async Task GetFitmentNotes(string sku, int vehicleId) + { + VehicleFitmentDto vehicleFitment = await _fitmentContext.VehicleFitments + .Where(vf => vf.VehicleToEngineConfigId == vehicleId && vf.Sku == sku) + .Select(vf => new VehicleFitmentDto + { + Sku = vf.Sku, + LineCode = vf.LineCode, + PartNumber = vf.PartNumber, + NoteText = vf.NoteText, + Year = vf.Year, + MakeName = vf.MakeName, + ModelName = vf.ModelName, + BaseVehicleId = vf.BaseVehicleId, + EngineConfigId = vf.EngineConfigId, + VehicleToEngineConfigId = vf.VehicleToEngineConfigId + }) + .FirstOrDefaultAsync(); + + if (vehicleFitment == null) + { + return null; + } + + vehicleFitment.SubmodelNames = await _fitmentContext.VehicleFitments + .Where(vf => vf.BaseVehicleId == vehicleFitment.BaseVehicleId && vf.Sku == sku) + .Select(vf => vf.SubmodelName) + .Distinct() + .ToListAsync(); + + return vehicleFitment; + } + + public IList GetYmmFitment(IList vehicles) { if (vehicles.Count == 0) {