using LiteCqrs; using Microsoft.EntityFrameworkCore; using TeleWave.Application.Common.Interfaces; using TeleWave.Application.Common.Models; namespace TeleWave.Application.Media.GetMedia; public sealed class GetMediaAssetQueryHandler(IAppDbContext dbContext) : IQueryHandler> { public async Task> Handle( GetMediaAssetQuery query, CancellationToken cancellationToken ) { var asset = await dbContext .MediaAssets.AsNoTracking() .FirstOrDefaultAsync(x => x.Id == query.Id, cancellationToken); return asset is null ? Result.Failure(MediaErrors.NotFound) : Result.Success(MediaAssetDto.From(asset)); } }