diff --git a/PartSource.Api/PartSource.Api.csproj b/PartSource.Api/PartSource.Api.csproj index 1d153ef..c25beb9 100644 --- a/PartSource.Api/PartSource.Api.csproj +++ b/PartSource.Api/PartSource.Api.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 f9e2fd37-0f2d-4e3a-955a-8e49a16fce1c Debug;Release;Also Debug en-us;en @@ -30,18 +30,16 @@ - - - - - + + + + - - + + - diff --git a/PartSource.Api/Startup.cs b/PartSource.Api/Startup.cs index 8ea993d..31358a2 100644 --- a/PartSource.Api/Startup.cs +++ b/PartSource.Api/Startup.cs @@ -5,7 +5,7 @@ using Microsoft.AspNetCore.Mvc.Formatters; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.OpenApi.Models; +using Microsoft.OpenApi; using Newtonsoft.Json; using Newtonsoft.Json.Serialization; using PartSource.Data.Contexts; diff --git a/PartSource.Automation/PartSource.Automation.csproj b/PartSource.Automation/PartSource.Automation.csproj index 0e317bd..9faa14f 100644 --- a/PartSource.Automation/PartSource.Automation.csproj +++ b/PartSource.Automation/PartSource.Automation.csproj @@ -2,7 +2,7 @@ Exe - net6.0 + net8.0 Debug;Release;Also Debug true @@ -12,19 +12,17 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - + + + + + - - diff --git a/PartSource.Automation/Services/VehicleFitmentService.cs b/PartSource.Automation/Services/VehicleFitmentService.cs index 34a6fc5..ab02c36 100644 --- a/PartSource.Automation/Services/VehicleFitmentService.cs +++ b/PartSource.Automation/Services/VehicleFitmentService.cs @@ -1,12 +1,9 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using PartSource.Data.Contexts; -using PartSource.Data.Dtos; using PartSource.Data.Models; namespace PartSource.Automation.Services diff --git a/PartSource.Automation/Services/WhiSeoService.cs b/PartSource.Automation/Services/WhiSeoService.cs index c8b4c89..a04db75 100644 --- a/PartSource.Automation/Services/WhiSeoService.cs +++ b/PartSource.Automation/Services/WhiSeoService.cs @@ -1,16 +1,13 @@ #pragma warning disable CA2100 // Review SQL queries for security vulnerabilities +using System; +using System.Collections.Generic; +using System.Data; +using Microsoft.Data.SqlClient; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using PartSource.Automation.Models.Configuration; using PartSource.Automation.Models.Enums; -using System; -using System.Collections.Concurrent; -using System.Collections.Generic; -using System.Data; -using System.Data.SqlClient; -using System.Text; -using System.Threading.Tasks; namespace PartSource.Automation.Services { @@ -36,7 +33,7 @@ namespace PartSource.Automation.Services // WHI changed the transfer protocol to SFTP and then messed with the directory structure. // Since fitment isn't really all that automated anyway, just download the files manually with an SFTP client. - Console.WriteLine($"Remember to manually download the {seoDataTypeString} files with an SFTP client. Press any key to continue."); + Console.WriteLine($"Remember to manually download the {seoDataTypeString} files with an SFTP client. Press enter to continue."); Console.ReadLine(); } diff --git a/PartSource.Data/PartSource.Data.csproj b/PartSource.Data/PartSource.Data.csproj index df96b3a..c11b019 100644 --- a/PartSource.Data/PartSource.Data.csproj +++ b/PartSource.Data/PartSource.Data.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 Debug;Release;Also Debug @@ -17,12 +17,12 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + diff --git a/PartSource.Services/PartSource.Services.csproj b/PartSource.Services/PartSource.Services.csproj index 38a3ec3..502b5d8 100644 --- a/PartSource.Services/PartSource.Services.csproj +++ b/PartSource.Services/PartSource.Services.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 Debug;Release;Also Debug @@ -12,12 +12,10 @@ - - + - diff --git a/PartSource.Services/VehicleService.cs b/PartSource.Services/VehicleService.cs index 9d030db..275f8b5 100644 --- a/PartSource.Services/VehicleService.cs +++ b/PartSource.Services/VehicleService.cs @@ -1,237 +1,262 @@ -using AutoMapper; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; -using PartSource.Data; using PartSource.Data.Contexts; using PartSource.Data.Dtos; using PartSource.Data.Models; using PartSource.Services.Extensions; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text.RegularExpressions; -using System.Threading.Tasks; namespace PartSource.Services { - public class VehicleService - { - private readonly IMapper _mapper; - private readonly PartSourceContext _partSourceContext; + public class VehicleService + { + private readonly PartSourceContext _partSourceContext; - public VehicleService(IMapper mapper, PartSourceContext partSourceContext) - { - _mapper = mapper; - _partSourceContext = partSourceContext; - } + public VehicleService(PartSourceContext partSourceContext) + { + _partSourceContext = partSourceContext; + } - public async Task> GetVehicles(VehicleDto vehicleQuery) - { - return await _partSourceContext.Vehicles - .ApplyQueryDto(vehicleQuery) - .ToListAsync(); - } + public async Task> GetVehicles(VehicleDto vehicleQuery) + { + return await _partSourceContext.Vehicles + .ApplyQueryDto(vehicleQuery) + .ToListAsync(); + } - public async Task GetVehicleById(int vehicleToEngineConfigId) - { - return await _partSourceContext.Vehicles - .FirstOrDefaultAsync(v => v.VehicleToEngineConfigId == vehicleToEngineConfigId); - } + public async Task GetVehicleById(int vehicleToEngineConfigId) + { + return await _partSourceContext.Vehicles + .FirstOrDefaultAsync(v => v.VehicleToEngineConfigId == vehicleToEngineConfigId); + } - public async Task> GetMakes(VehicleDto vehicleQuery) - { - return await _partSourceContext.Vehicles - .ApplyQueryDto(vehicleQuery) - .Select(v => new MakeDto - { - MakeId = v.MakeId, - MakeName = v.MakeName + public async Task> GetMakes(VehicleDto vehicleQuery) + { + return await _partSourceContext.Vehicles + .ApplyQueryDto(vehicleQuery) + .Select(v => new MakeDto + { + MakeId = v.MakeId, + MakeName = v.MakeName - }) - .Distinct() - .OrderBy(v => v.MakeName) - .ToListAsync(); - } + }) + .Distinct() + .OrderBy(v => v.MakeName) + .ToListAsync(); + } - public async Task GetMakeById(int makeId) - { - Vehicle vehicle = await _partSourceContext.Vehicles - .Where(v => v.MakeId == makeId) - .FirstOrDefaultAsync(); + public async Task GetMakeById(int makeId) + { + Vehicle vehicle = await _partSourceContext.Vehicles + .Where(v => v.MakeId == makeId) + .FirstOrDefaultAsync(); - return _mapper.Map(vehicle); - } + return new MakeDto + { + MakeId = vehicle.MakeId, + MakeName = vehicle.MakeName + }; + } - public async Task> GetModels(VehicleDto vehicleQuery) - { - return await _partSourceContext.Vehicles - .ApplyQueryDto(vehicleQuery) - .Select(v => new ModelDto - { - ModelId = v.ModelId, - ModelName = v.ModelName, - MakeId = v.MakeId, - MakeName = v.MakeName - }) - .Distinct() - .OrderBy(m => m.ModelName) - .ToListAsync(); - } + public async Task> GetModels(VehicleDto vehicleQuery) + { + return await _partSourceContext.Vehicles + .ApplyQueryDto(vehicleQuery) + .Select(v => new ModelDto + { + ModelId = v.ModelId, + ModelName = v.ModelName, + MakeId = v.MakeId, + MakeName = v.MakeName + }) + .Distinct() + .OrderBy(m => m.ModelName) + .ToListAsync(); + } - public async Task GetModelById(int modelId) - { - Vehicle vehicle = await _partSourceContext.Vehicles - .Where(m => m.ModelId == modelId) - .FirstOrDefaultAsync(); + public async Task GetModelById(int modelId) + { + Vehicle vehicle = await _partSourceContext.Vehicles + .Where(m => m.ModelId == modelId) + .FirstOrDefaultAsync(); - return _mapper.Map(vehicle); - } + return new ModelDto + { + MakeId = vehicle.MakeId, + MakeName = vehicle.MakeName, + ModelId = vehicle.ModelId, + ModelName = vehicle.ModelName + }; + } - public async Task> GetBaseVehicles(VehicleDto vehicleQuery) - { - return await _partSourceContext.Vehicles - .ApplyQueryDto(vehicleQuery) - .Select(v => new BaseVehicleDto - { - BaseVehicleId = v.BaseVehicleId, - MakeName = v.MakeName, - MakeId = v.MakeId, - ModelName = v.ModelName, - ModelId = v.ModelId, - Year = v.Year - }) - .Distinct() - .ToListAsync(); - } + public async Task> GetBaseVehicles(VehicleDto vehicleQuery) + { + return await _partSourceContext.Vehicles + .ApplyQueryDto(vehicleQuery) + .Select(v => new BaseVehicleDto + { + BaseVehicleId = v.BaseVehicleId, + MakeName = v.MakeName, + MakeId = v.MakeId, + ModelName = v.ModelName, + ModelId = v.ModelId, + Year = v.Year + }) + .Distinct() + .ToListAsync(); + } - public async Task GetBaseVehicleById(int baseVehicleId) - { - Vehicle vehicle = await _partSourceContext.Vehicles - .Where(b => b.BaseVehicleId == baseVehicleId) - .FirstOrDefaultAsync(); + public async Task GetBaseVehicleById(int baseVehicleId) + { + Vehicle vehicle = await _partSourceContext.Vehicles + .Where(b => b.BaseVehicleId == baseVehicleId) + .FirstOrDefaultAsync(); - return _mapper.Map(vehicle); - } + return new BaseVehicleDto + { + MakeId = vehicle.MakeId, + MakeName = vehicle.MakeName, + ModelId = vehicle.ModelId, + ModelName = vehicle.ModelName, + Year = vehicle.Year, + BaseVehicleId = vehicle.BaseVehicleId + }; + } - public async Task> GetEngines(VehicleDto vehicleQuery) - { - return await _partSourceContext.Vehicles - .ApplyQueryDto(vehicleQuery) - .Select(v => new EngineDto - { - EngineConfigId = v.EngineConfigId, - EngineDescription = v.EngineDescription, - MakeName = v.MakeName, - MakeId = v.MakeId - }) - .Distinct() - .ToListAsync(); - } + public async Task> GetEngines(VehicleDto vehicleQuery) + { + return await _partSourceContext.Vehicles + .ApplyQueryDto(vehicleQuery) + .Select(v => new EngineDto + { + EngineConfigId = v.EngineConfigId, + EngineDescription = v.EngineDescription, + MakeName = v.MakeName, + MakeId = v.MakeId + }) + .Distinct() + .ToListAsync(); + } - public async Task GetEngineById(int engineConfigId) - { - Vehicle vehicle = await _partSourceContext.Vehicles - .Where(e => e.EngineConfigId == engineConfigId) - .FirstOrDefaultAsync(); + public async Task GetEngineById(int engineConfigId) + { + Vehicle vehicle = await _partSourceContext.Vehicles + .Where(e => e.EngineConfigId == engineConfigId) + .FirstOrDefaultAsync(); - return _mapper.Map(vehicle); - } + return new EngineDto + { + MakeId = vehicle.MakeId, + MakeName = vehicle.MakeName, + EngineConfigId = vehicle.EngineConfigId, + EngineDescription = vehicle.EngineDescription + }; + } - public async Task> GetSubmodels(VehicleDto vehicleQuery) - { - return await _partSourceContext.Vehicles - .ApplyQueryDto(vehicleQuery) - .GroupBy(v => new { v.SubmodelId, v.SubmodelName, v.MakeId, v.MakeName }) - .Select(v => new SubmodelDto - { - SubmodelId = v.Key.SubmodelId, - SubmodelName = v.Key.SubmodelName, - MakeId = v.Key.MakeId, - MakeName = v.Key.MakeName - }) - .Distinct() - .ToListAsync(); - } + public async Task> GetSubmodels(VehicleDto vehicleQuery) + { + return await _partSourceContext.Vehicles + .ApplyQueryDto(vehicleQuery) + .GroupBy(v => new { v.SubmodelId, v.SubmodelName, v.MakeId, v.MakeName }) + .Select(v => new SubmodelDto + { + SubmodelId = v.Key.SubmodelId, + SubmodelName = v.Key.SubmodelName, + MakeId = v.Key.MakeId, + MakeName = v.Key.MakeName + }) + .Distinct() + .ToListAsync(); + } - public async Task GetSubmodelById(int submodelId) - { - Vehicle vehicle = await _partSourceContext.Vehicles - .Where(s => s.SubmodelId == submodelId) - .FirstOrDefaultAsync(); + public async Task GetSubmodelById(int submodelId) + { + Vehicle vehicle = await _partSourceContext.Vehicles + .Where(s => s.SubmodelId == submodelId) + .FirstOrDefaultAsync(); - return _mapper.Map(vehicle); - } + return new SubmodelDto { + SubmodelName = vehicle.SubmodelName, + SubmodelId = vehicle.SubmodelId, + MakeId= vehicle.MakeId, + MakeName = vehicle.MakeName + }; - #region Legacy API Support + } - [Obsolete] - public async Task GetVehicle(int baseVehicleId, int engineConfigId, int submodelId) - { - return await _partSourceContext.Vehicles.FirstOrDefaultAsync(d => - d.BaseVehicleId == baseVehicleId - && d.EngineConfigId == engineConfigId - && d.SubmodelId == submodelId - ); - } + #region Legacy API Support - [Obsolete] - public async Task> GetSubmodels(int makeId, int modelId, int year) - { - return await _partSourceContext.Submodels.Where(s => - s.MakeId == makeId - && s.ModelId == modelId - && s.Year == year - ) - .ToListAsync(); - } + [Obsolete] + public async Task GetVehicle(int baseVehicleId, int engineConfigId, int submodelId) + { + return await _partSourceContext.Vehicles.FirstOrDefaultAsync(d => + d.BaseVehicleId == baseVehicleId + && d.EngineConfigId == engineConfigId + && d.SubmodelId == submodelId + ); + } - [Obsolete] - public async Task> GetEngines(int baseVehicleId) - { - return await _partSourceContext.Engines.Where(e => e.BaseVehicleId == baseVehicleId).ToListAsync(); - } + [Obsolete] + public async Task> GetSubmodels(int makeId, int modelId, int year) + { + return await _partSourceContext.Submodels.Where(s => + s.MakeId == makeId + && s.ModelId == modelId + && s.Year == year + ) + .ToListAsync(); + } - [Obsolete] - public async Task> GetEngines(int baseVehicleId, int submodelId) - { - return await _partSourceContext.Engines.Where(e => - e.BaseVehicleId == baseVehicleId - && e.SubmodelId == submodelId - ) - .ToListAsync(); - } + [Obsolete] + public async Task> GetEngines(int baseVehicleId) + { + return await _partSourceContext.Engines.Where(e => e.BaseVehicleId == baseVehicleId).ToListAsync(); + } - [Obsolete] - public async Task GetBaseVehicle(int makeId, int modelId, int year) - { - return await _partSourceContext.BaseVehicles.FirstOrDefaultAsync(d => - d.MakeId == makeId - && d.ModelId == modelId - && d.Year == year - ); - } + [Obsolete] + public async Task> GetEngines(int baseVehicleId, int submodelId) + { + return await _partSourceContext.Engines.Where(e => + e.BaseVehicleId == baseVehicleId + && e.SubmodelId == submodelId + ) + .ToListAsync(); + } - [Obsolete] - public async Task> GetModels(int makeId, int year) - { - return await _partSourceContext.VehicleModels - .Where(m => - m.MakeId == makeId - && m.Year == year - ) - .OrderBy(d => d.Name) - .ToListAsync(); - } + [Obsolete] + public async Task GetBaseVehicle(int makeId, int modelId, int year) + { + return await _partSourceContext.BaseVehicles.FirstOrDefaultAsync(d => + d.MakeId == makeId + && d.ModelId == modelId + && d.Year == year + ); + } - [Obsolete] - public async Task> GetMakes() - { - return await _partSourceContext.VehicleMakes - .OrderBy(m => m.Name) - .ToListAsync(); - } - #endregion - } + [Obsolete] + public async Task> GetModels(int makeId, int year) + { + return await _partSourceContext.VehicleModels + .Where(m => + m.MakeId == makeId + && m.Year == year + ) + .OrderBy(d => d.Name) + .ToListAsync(); + } + + [Obsolete] + public async Task> GetMakes() + { + return await _partSourceContext.VehicleMakes + .OrderBy(m => m.Name) + .ToListAsync(); + } + #endregion + } } diff --git a/PartSource.sln b/PartSource.sln index 75f1749..22a6485 100644 --- a/PartSource.sln +++ b/PartSource.sln @@ -11,10 +11,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PartSource.Services", "Part EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PartSource.Automation", "PartSource.Automation\PartSource.Automation.csproj", "{C85D675B-A76C-4F9C-9C57-1E063211C946}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shopify", "..\ratermania\Packages\Shopify\Shopify.csproj", "{DBAE670D-D4DC-CF6C-0615-1026D17A92D0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shopify.BulkUpdate", "..\ratermania\Packages\Shopify.BulkUpdate\Shopify.BulkUpdate.csproj", "{E9F85D14-D6A6-1412-E0E6-69D47766694A}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -73,30 +69,6 @@ Global {C85D675B-A76C-4F9C-9C57-1E063211C946}.Release|x64.Build.0 = Release|Any CPU {C85D675B-A76C-4F9C-9C57-1E063211C946}.Release|x86.ActiveCfg = Release|Any CPU {C85D675B-A76C-4F9C-9C57-1E063211C946}.Release|x86.Build.0 = Release|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Debug|x64.ActiveCfg = Debug|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Debug|x64.Build.0 = Debug|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Debug|x86.ActiveCfg = Debug|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Debug|x86.Build.0 = Debug|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Release|Any CPU.Build.0 = Release|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Release|x64.ActiveCfg = Release|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Release|x64.Build.0 = Release|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Release|x86.ActiveCfg = Release|Any CPU - {DBAE670D-D4DC-CF6C-0615-1026D17A92D0}.Release|x86.Build.0 = Release|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Debug|x64.ActiveCfg = Debug|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Debug|x64.Build.0 = Debug|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Debug|x86.ActiveCfg = Debug|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Debug|x86.Build.0 = Debug|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Release|Any CPU.Build.0 = Release|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Release|x64.ActiveCfg = Release|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Release|x64.Build.0 = Release|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Release|x86.ActiveCfg = Release|Any CPU - {E9F85D14-D6A6-1412-E0E6-69D47766694A}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE