feat(TfFileDto): Icon durch IconUrl ersetzen und Mapping-Resolver hinzufügen

This commit is contained in:
tekh 2025-08-04 11:01:25 +02:00
parent 8c6202d7c0
commit c952df5bb4
3 changed files with 25 additions and 2 deletions

View File

@ -10,5 +10,5 @@ public class TfFileDto
public string? Comment { get; set; }
public string? Icon { get; set; }
public UriBuilder? IconUrl { get; set; }
}

View File

@ -29,6 +29,7 @@ public class MappingProfile : AutoMapper.Profile
.ForMember(dest => dest.Others, opt => opt.MapFrom(src => new string?[] { src.State2, src.State3, src.State4 }));
CreateMap<TfFile, TfFileDto>()
.ForMember(dest => dest.Url, opt => opt.MapFrom<TfFileUriBuilderResolver>());
.ForMember(dest => dest.Url, opt => opt.MapFrom<TfFileUriBuilderResolver>())
.ForMember(dest => dest.Url, opt => opt.MapFrom<TfFileIconUriBuilderResolver>());
}
}

View File

@ -0,0 +1,22 @@
using AutoMapper;
using System.Web;
using WorkFlow.Application.Dto;
using WorkFlow.Domain.Entities;
namespace WorkFlow.Application.Mapping;
public class TfFileIconUriBuilderResolver : IValueResolver<TfFile, TfFileDto, UriBuilder?>
{
private readonly UriBuilder _uriBuilder;
public TfFileIconUriBuilderResolver(UriBuilder uriBuilder) => _uriBuilder = uriBuilder;
public UriBuilder? Resolve(TfFile source, TfFileDto destination, UriBuilder? destMember, ResolutionContext context)
{
var builder = new UriBuilder(_uriBuilder.Uri)
{
Path = HttpUtility.UrlEncode(source.Icon)
};
return builder;
}
}