namespace Yes.Application.Admins.Articles { public record GetLatestArticlesQuery() : IRequest>; public record GetLatestArticlesQueryResponse( int Id, string Title, DateTime CreateDate, bool IsDraft ); public class GetLatestArticlesQueryHandler(BlogDbContext db) : IRequestHandler> { private readonly BlogDbContext _db = db; public async Task> Handle(GetLatestArticlesQuery request, CancellationToken cancellationToken) { var query = _db.Articles.AsNoTracking().Where(x=>x.Type==ArticleTypeEnum.Article).OrderByDescending(x => x.Id).Select(article => new GetLatestArticlesQueryResponse( article.Id, article.Title, article.CreateDate, article.Status == ArticleStatusEnum.Draft ) ).Take(10); var articles = await query.ToListAsync(cancellationToken); return articles; } } }