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;
|
2023-12-20 20:25:25 -06:00
|
|
|
|
|
2024-08-04 18:44:33 -05:00
|
|
|
|
namespace LANCommander.Server
|
2023-12-20 20:25:25 -06:00
|
|
|
|
{
|
2025-01-02 11:40:15 +11:00
|
|
|
|
public class LANCommanderMappingProfile : Profile
|
2023-12-20 20:25:25 -06:00
|
|
|
|
{
|
2025-01-02 11:40:15 +11:00
|
|
|
|
public LANCommanderMappingProfile()
|
2023-12-20 20:25:25 -06:00
|
|
|
|
{
|
|
|
|
|
|
CreateMap<Data.Models.Action, SDK.Models.Action>();
|
|
|
|
|
|
CreateMap<Data.Models.Archive, SDK.Models.Archive>();
|
|
|
|
|
|
CreateMap<Data.Models.Company, SDK.Models.Company>();
|
2024-05-07 20:06:28 -05:00
|
|
|
|
CreateMap<Data.Models.Collection, SDK.Models.Collection>();
|
2024-07-12 23:01:27 -05:00
|
|
|
|
CreateMap<Data.Models.Engine, SDK.Models.Engine>();
|
2023-12-20 20:25:25 -06:00
|
|
|
|
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>();
|
2024-05-07 20:06:28 -05:00
|
|
|
|
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>();
|
2023-12-20 20:25:25 -06:00
|
|
|
|
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);
|
2024-01-02 20:46:28 -06:00
|
|
|
|
|
2024-11-04 19:07:37 -06:00
|
|
|
|
CreateMap<Data.Models.Action, SDK.Models.Action>()
|
|
|
|
|
|
.ForMember(dest =>
|
2024-11-05 22:35:38 -06:00
|
|
|
|
dest.IsPrimaryAction,
|
2024-11-04 19:07:37 -06:00
|
|
|
|
opt => opt.MapFrom(src => src.PrimaryAction));
|
2024-11-11 20:20:02 -06:00
|
|
|
|
|
2024-11-12 02:17:26 -06:00
|
|
|
|
CreateMap<Data.Models.Game, SDK.Models.Game>()
|
2024-11-16 11:40:51 -06:00
|
|
|
|
.MaxDepth(5)
|
2024-11-12 02:17:26 -06:00
|
|
|
|
.ForMember(dest =>
|
|
|
|
|
|
dest.DependentGames,
|
|
|
|
|
|
opt => opt.MapFrom(src => src.DependentGames.Select(d => d.Id)));
|
|
|
|
|
|
|
2024-11-11 20:20:02 -06:00
|
|
|
|
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()));
|
2025-01-03 22:52:30 -06:00
|
|
|
|
|
2025-11-16 12:31:25 -06:00
|
|
|
|
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));
|
2023-12-20 20:25:25 -06:00
|
|
|
|
}
|
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));
|
|
|
|
|
|
}
|
2023-12-20 20:25:25 -06:00
|
|
|
|
}
|
|
|
|
|
|
}
|