Map DepotGame cover from attached media

This commit is contained in:
Pat Hartl 2024-11-11 20:20:02 -06:00
parent fd994c2524
commit 63d203f87f
3 changed files with 11 additions and 2 deletions

View file

@ -15,14 +15,19 @@ namespace LANCommander.Server.Services
IBaseDatabaseService<T> Include(Expression<Func<T, object>> includeExpression);
Task<ICollection<T>> Get();
Task<ICollection<U>> Get<U>();
Task<T> Get(Guid id);
Task<U> Get<U>(Guid id);
Task<ICollection<T>> Get(Expression<Func<T, bool>> predicate);
Task<ICollection<U>> Get<U>(Expression<Func<T, bool>> predicate);
Task<T> FirstOrDefault(Expression<Func<T, bool>> predicate);
Task<U> FirstOrDefault<U>(Expression<Func<T, bool>> predicate);
Task<T> FirstOrDefault<TKey>(Expression<Func<T, bool>> predicate, Expression<Func<T, TKey>> orderKeySelector);
Task<U> FirstOrDefault<U, TKey>(Expression<Func<T, bool>> predicate, Expression<Func<U, TKey>> orderKeySelector);
Task<bool> Exists(Guid id);

View file

@ -12,7 +12,6 @@ namespace LANCommander.Server
CreateMap<Data.Models.Collection, SDK.Models.Collection>();
CreateMap<Data.Models.Engine, SDK.Models.Engine>();
CreateMap<Data.Models.Game, SDK.Models.Game>();
CreateMap<Data.Models.Game, SDK.Models.DepotGame>();
CreateMap<Data.Models.GameSave, SDK.Models.GameSave>();
CreateMap<Data.Models.Genre, SDK.Models.Genre>();
CreateMap<Data.Models.Key, SDK.Models.Key>();
@ -41,6 +40,11 @@ namespace LANCommander.Server
.ForMember(dest =>
dest.IsPrimaryAction,
opt => opt.MapFrom(src => src.PrimaryAction));
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()));
}
}
}

View file

@ -46,7 +46,7 @@ namespace LANCommander.Server.Controllers.Api
var games = await Cache.GetOrSetAsync("DepotGames", async _ =>
{
return await GameService.Get<SDK.Models.DepotGame>();
return await GameService.Include(g => g.Media.Where(m => m.Type == SDK.Enums.MediaType.Cover)).Get<SDK.Models.DepotGame>();
}, TimeSpan.MaxValue);
foreach (var game in games)