MireaBackend/Application/Cqrs/Faculty/Queries/GetFacultyList/GetFacultyListQueryHandler.cs
Polianin Nikita ce3bd23673
All checks were successful
.NET Test Pipeline / build-and-test (pull_request) Successful in 1m18s
feat: add queries for faculty
2024-02-16 22:40:21 +03:00

31 lines
1.0 KiB
C#

using MediatR;
using Microsoft.EntityFrameworkCore;
using Mirea.Api.DataAccess.Application.Interfaces.DbContexts.Schedule;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace Mirea.Api.DataAccess.Application.Cqrs.Faculty.Queries.GetFacultyList;
public class GetFacultyListQueryHandler(IFacultyDbContext dbContext) : IRequestHandler<GetFacultyListQuery, FacultyListVm>
{
public async Task<FacultyListVm> Handle(GetFacultyListQuery request, CancellationToken cancellationToken)
{
var dtos = dbContext.Faculties.OrderBy(f => f.Id).Select(f => new FacultyLookupDto()
{
Id = f.Id,
Name = f.Name,
CampusId = f.CampusId
});
if (request is { PageSize: not null, Page: not null })
dtos = dtos.Skip(request.Page.Value * request.PageSize.Value).Take(request.PageSize.Value);
var result = await dtos.ToListAsync(cancellationToken);
return new FacultyListVm
{
Faculties = result
};
}
}