Files
mixtape/zero.Api/Endpoints/Media/Maps/MediaMapperProfile.cs
T

77 lines
2.3 KiB
C#
Raw Normal View History

2021-12-09 16:02:39 +01:00
namespace zero.Api.Endpoints.Media;
public class MediaMapperProfile : ZeroMapperProfile
{
2021-12-16 13:55:09 +01:00
protected IMediaFileSystem FileSystem { get; private set; }
public MediaMapperProfile(IMediaFileSystem fileSystem)
{
FileSystem = fileSystem;
}
2021-12-09 16:02:39 +01:00
public override void Configure(IZeroMapper mapper)
{
mapper.Define<zero.Media.Media, MediaBasic>((source, ctx) => new(), Map);
mapper.Define<zero.Media.Media, MediaEdit>((source, ctx) => new(), Map);
mapper.Define<zero.Media.Media, MediaFileEdit>((source, ctx) => new(), Map);
mapper.Define<zero.Media.Media, MediaFolderEdit>((source, ctx) => new(), Map);
mapper.Define<MediaSave, zero.Media.Media>((source, ctx) => new(), Map);
}
protected virtual void Map(zero.Media.Media source, MediaBasic target, IZeroMapperContext ctx)
{
2021-12-16 00:19:51 +01:00
target.Id = source.Id;
target.Name = source.Name;
target.ParentId = source.ParentId;
2021-12-16 16:59:27 +01:00
target.IsFolder = source.IsFolder;
2021-12-16 13:55:09 +01:00
target.Children = 0;
target.Size = source.Size;
2022-01-03 13:25:23 +01:00
if (source.Path.HasValue())
{
target.Source = FileSystem.MapToPublicPath(source.Path);
}
2021-12-18 01:51:38 +01:00
if (source.ImageMeta != null && source.ImageMeta.Thumbnails.Any())
2021-12-16 13:55:09 +01:00
{
2021-12-18 01:51:38 +01:00
string path = source.ImageMeta.Thumbnails.GetValueOrDefault("preview");
2022-01-03 13:25:23 +01:00
target.Preview = path.IsNullOrEmpty() ? null : FileSystem.MapToPublicPath(path);
2021-12-16 13:55:09 +01:00
}
2021-12-09 16:02:39 +01:00
}
protected virtual void Map(zero.Media.Media source, MediaEdit target, IZeroMapperContext ctx)
{
this.MapDisplayData(source, target);
2021-12-16 16:59:27 +01:00
target.IsFolder = source.IsFolder;
2021-12-09 16:02:39 +01:00
target.ParentId = source.ParentId;
}
protected virtual void Map(zero.Media.Media source, MediaFolderEdit target, IZeroMapperContext ctx)
{
Map(source, (MediaEdit)target, ctx);
}
protected virtual void Map(zero.Media.Media source, MediaFileEdit target, IZeroMapperContext ctx)
{
Map(source, (MediaEdit)target, ctx);
2021-12-18 01:51:38 +01:00
target.AlternativeText = source.ImageMeta?.AlternativeText;
2021-12-09 16:02:39 +01:00
target.Caption = source.Caption;
target.Path = source.Path;
2021-12-18 01:51:38 +01:00
target.Thumbnails = source.ImageMeta?.Thumbnails;
2021-12-09 16:02:39 +01:00
target.Size = source.Size;
target.ImageMeta = source.ImageMeta;
2021-12-18 01:51:38 +01:00
target.FocalPoint = source.ImageMeta?.FocalPoint;
2021-12-09 16:02:39 +01:00
}
protected virtual void Map(MediaSave source, zero.Media.Media target, IZeroMapperContext ctx)
{
this.MapSaveData(source, target);
}
}