using System.Globalization; using System.Linq; using MediatR; using Mirea.Api.DataAccess.Application.Cqrs.Campus.Queries.GetCampusBasicInfoList; using Mirea.Api.DataAccess.Application.Interfaces.DbContexts.Schedule; using System.Threading.Tasks; using System.Threading; using Microsoft.EntityFrameworkCore; using Mirea.Api.DataAccess.Application.Common.Exceptions; namespace Mirea.Api.DataAccess.Application.Cqrs.Campus.Queries.GetCampusDetails; public class GetCampusDetailsQueryHandler(ICampusDbContext dbContext) : IRequestHandler { public async Task Handle(GetCampusDetailsQuery request, CancellationToken cancellationToken) { var campus = await dbContext.Campuses.FirstOrDefaultAsync(c => c.Id == request.Id, cancellationToken) ?? throw new NotFoundException(typeof(Domain.Schedule.Campus), request.Id); return new CampusDetailsVm() { Id = campus.Id, CodeName = campus.CodeName, FullName = campus.FullName, Address = campus.Address }; } }