LANCommander/LANCommander.Server/LANCommanderMappingProfile.cs
Pat Hartl b9746d64a4
Some checks failed
LANCommander Release / prep (push) Failing after 32s
LANCommander Release / build_server_linux_arm64 (push) Has been skipped
LANCommander Release / build_server_linux_x64 (push) Has been skipped
LANCommander Release / build_server_osx_arm64 (push) Has been skipped
LANCommander Release / build_server_osx_x64 (push) Has been skipped
LANCommander Release / build_server_win_arm64 (push) Has been skipped
LANCommander Release / build_server_win_x64 (push) Has been skipped
LANCommander Release / build_launcher_linux_arm64 (push) Has been skipped
LANCommander Release / build_launcher_linux_x64 (push) Has been skipped
LANCommander Release / build_launcher_osx_arm64 (push) Has been skipped
LANCommander Release / build_launcher_osx_x64 (push) Has been skipped
LANCommander Release / build_launcher_win_arm64 (push) Has been skipped
LANCommander Release / build_launcher_win_x64 (push) Has been skipped
LANCommander Release / build_release (push) Has been skipped
LANCommander SDK Release / prep (push) Failing after 13s
LANCommander SDK Release / publish (push) Has been skipped
Add ability to disable user libraries
2025-02-22 00:43:03 -06:00

75 lines
3.4 KiB
C#

using System.Linq.Expressions;
using AutoMapper;
using LANCommander.SDK.Models;
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>();
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>();
CreateMap<Data.Models.Platform, SDK.Models.Platform>();
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>();
CreateMap<Data.Models.GameCustomField, SDK.Models.GameCustomField>();
CreateEntityReferenceMap<SDK.Models.Game>(g => g.Title);
CreateMap<Services.Models.Settings, SDK.Models.Settings>()
.ForMember(dest =>
dest.IPXRelayHost,
opt => opt.MapFrom(src => src.IPXRelay.Host))
.ForMember(dest =>
dest.IPXRelayPort,
opt => opt.MapFrom(src => src.IPXRelay.Port))
.ForMember(dest =>
dest.EnableUserLibraries,
opt => opt.MapFrom(src => src.Library.EnableUserLibraries));
CreateMap<Data.Models.Action, SDK.Models.Action>()
.ForMember(dest =>
dest.IsPrimaryAction,
opt => opt.MapFrom(src => src.PrimaryAction));
CreateMap<Data.Models.Game, SDK.Models.Game>()
.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,
opt => opt.MapFrom(src => src.Media.Where(m => m.Type == SDK.Enums.MediaType.Cover).FirstOrDefault()));
CreateMap<Services.Models.AuthenticationProvider, SDK.Models.AuthenticationProvider>();
CreateMap<Data.Models.Game, EntityReference>()
.ForMember(dest => dest.Name,
opt => opt.MapFrom(src => src.Title));
}
private void CreateEntityReferenceMap<TEntity>(Expression<Func<TEntity, string>> nameMember)
{
CreateMap<TEntity, SDK.Models.EntityReference>()
.ForMember(dest => dest.Name, opt => opt.MapFrom(nameMember));
}
}
}