| 1234567891011121314151617181920212223242526272829303132 |
- using Application.Abstractions.Data;
- using Application.Abstractions.Messaging;
- using Microsoft.EntityFrameworkCore;
- using SharedKernel.Results;
- namespace Application.Features.Admin.Store.Game.Options;
- public sealed class Handler(IAppDbContext db) : IQueryHandler<Query, Result<Response>>
- {
- public async Task<Result<Response>> Handle(Query request, CancellationToken ct)
- {
- var genres = await db.GameGenre.AsNoTracking()
- .Where(g => g.IsActive)
- .OrderBy(g => g.Order).ThenBy(g => g.KorName)
- .Select(g => new OptionItem(g.ID, g.KorName))
- .ToListAsync(ct);
- var categories = await db.GameCategory.AsNoTracking()
- .Where(c => c.IsActive)
- .OrderBy(c => c.Order).ThenBy(c => c.KorName)
- .Select(c => new OptionItem(c.ID, c.KorName))
- .ToListAsync(ct);
- var languages = await db.GameLanguage.AsNoTracking()
- .Where(l => l.IsActive)
- .OrderBy(l => l.Order).ThenBy(l => l.KorName)
- .Select(l => new OptionItem(l.ID, l.KorName))
- .ToListAsync(ct);
- return new Response(genres, categories, languages);
- }
- }
|