From e57e87ad9e910df8b7e20075f2d45a075fa08b4c Mon Sep 17 00:00:00 2001 From: Lavardin <52592050+Lavardin@users.noreply.github.com> Date: Tue, 10 May 2022 22:43:36 -0700 Subject: [PATCH] Added Product URL Resolver --- API/Helpers/MappingProfiles.cs | 3 ++- API/Helpers/ProductUrlResolver.cs | 25 +++++++++++++++++++++++++ API/appsettings.Development.json | 3 ++- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 API/Helpers/ProductUrlResolver.cs diff --git a/API/Helpers/MappingProfiles.cs b/API/Helpers/MappingProfiles.cs index 1edaa9d..929f768 100644 --- a/API/Helpers/MappingProfiles.cs +++ b/API/Helpers/MappingProfiles.cs @@ -10,7 +10,8 @@ namespace API.Helpers { CreateMap() .ForMember(d => d.ProductBrand, o => o.MapFrom(s => s.ProductBrand.Name)) - .ForMember(d => d.ProductType, o => o.MapFrom(s => s.ProductType.Name)); + .ForMember(d => d.ProductType, o => o.MapFrom(s => s.ProductType.Name)) + .ForMember(d => d.PictureUrl, o => o.MapFrom()); } } } \ No newline at end of file diff --git a/API/Helpers/ProductUrlResolver.cs b/API/Helpers/ProductUrlResolver.cs new file mode 100644 index 0000000..fd3d1c4 --- /dev/null +++ b/API/Helpers/ProductUrlResolver.cs @@ -0,0 +1,25 @@ +using API.Dtos; +using AutoMapper; +using Core.Entities; + +namespace API.Helpers +{ + public class ProductUrlResolver : IValueResolver + { + private readonly IConfiguration _config; + public ProductUrlResolver(IConfiguration config) + { + _config = config; + } + + public string Resolve(Product source, ProductToReturnDto destination, string destMember, ResolutionContext context) + { + if(!string.IsNullOrEmpty(source.PictureUrl)) + { + return _config["ApiUrl"] + source.PictureUrl; + } + + return null; + } + } +} \ No newline at end of file diff --git a/API/appsettings.Development.json b/API/appsettings.Development.json index cf133aa..f9dcb95 100644 --- a/API/appsettings.Development.json +++ b/API/appsettings.Development.json @@ -7,5 +7,6 @@ }, "ConnectionStrings": { "DefaultConnection": "Data source=ecommerce.db" - } + }, + "ApiUrl": "https://localhost:5001/" }