LANCommander/LANCommander.Server/LANCommanderMappingProfile.cs

65 lines
2.9 KiB
C#
Raw Permalink Normal View History

2025-02-22 00:26:54 -06:00
using System.Linq.Expressions;
using AutoMapper;
2025-01-12 02:54:41 -06:00
using LANCommander.SDK.Models;
2024-08-04 18:44:33 -05:00
namespace LANCommander.Server
{
public class LANCommanderMappingProfile : Profile
{
public LANCommanderMappingProfile()
{
CreateMap<Data.Models.Action, SDK.Models.Action>();
CreateMap<Data.Models.Archive, SDK.Models.Archive>();
CreateMap<Data.Models.Company, SDK.Models.Company>();
CreateMap<Data.Models.Collection, SDK.Models.Collection>();
2024-07-12 23:01:27 -05:00
CreateMap<Data.Models.Engine, SDK.Models.Engine>();
CreateMap<Data.Models.GameSave, SDK.Models.GameSave>();
CreateMap<Data.Models.Genre, SDK.Models.Genre>();
CreateMap<Data.Models.Key, SDK.Models.Key>();
CreateMap<Data.Models.Media, SDK.Models.Media>();
CreateMap<Data.Models.MultiplayerMode, SDK.Models.MultiplayerMode>();
2024-07-12 23:01:04 -05:00
CreateMap<Data.Models.Platform, SDK.Models.Platform>();
2024-02-14 01:57:54 -06:00
CreateMap<Data.Models.PlaySession, SDK.Models.PlaySession>();
CreateMap<Data.Models.Redistributable, SDK.Models.Redistributable>();
CreateMap<Data.Models.Server, SDK.Models.Server>();
CreateMap<Data.Models.ServerConsole, SDK.Models.ServerConsole>();
CreateMap<Data.Models.ServerHttpPath, SDK.Models.ServerHttpPath>();
CreateMap<Data.Models.SavePath, SDK.Models.SavePath>();
CreateMap<Data.Models.Script, SDK.Models.Script>();
CreateMap<Data.Models.Tag, SDK.Models.Tag>();
CreateMap<Data.Models.User, SDK.Models.User>();
2025-01-31 01:51:29 -06:00
CreateMap<Data.Models.GameCustomField, SDK.Models.GameCustomField>();
2025-02-22 00:26:54 -06:00
CreateEntityReferenceMap<SDK.Models.Game>(g => g.Title);
CreateMap<Data.Models.Action, SDK.Models.Action>()
.ForMember(dest =>
2024-11-05 22:35:38 -06:00
dest.IsPrimaryAction,
opt => opt.MapFrom(src => src.PrimaryAction));
CreateMap<Data.Models.Game, SDK.Models.Game>()
2024-11-16 11:40:51 -06:00
.MaxDepth(5)
.ForMember(dest =>
dest.DependentGames,
opt => opt.MapFrom(src => src.DependentGames.Select(d => d.Id)));
CreateMap<Data.Models.Game, SDK.Models.DepotGame>()
.ForMember(dest =>
dest.Cover,
2024-12-16 21:30:21 -06:00
opt => opt.MapFrom(src => src.Media.Where(m => m.Type == SDK.Enums.MediaType.Cover).FirstOrDefault()));
CreateMap<Settings.Models.AuthenticationProvider, SDK.Models.AuthenticationProvider>();
2025-01-12 02:54:41 -06:00
CreateMap<Data.Models.Game, EntityReference>()
.ForMember(dest => dest.Name,
opt => opt.MapFrom(src => src.Title));
}
2025-02-22 00:26:54 -06:00
private void CreateEntityReferenceMap<TEntity>(Expression<Func<TEntity, string>> nameMember)
{
CreateMap<TEntity, SDK.Models.EntityReference>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(nameMember));
}
}
}