using AutoMapper;
using DbFirst.Application.Repositories;
using DbFirst.Contracts.MassData;
using MediatR;

namespace DbFirst.Application.MassData.Queries;

public class GetAllMassDataHandler : IRequestHandler<GetAllMassDataQuery, List<MassDataReadDto>>
{
    private readonly IMassDataRepository _repository;
    private readonly IMapper _mapper;

    public GetAllMassDataHandler(IMassDataRepository repository, IMapper mapper)
    {
        _repository = repository;
        _mapper = mapper;
    }

    public async Task<List<MassDataReadDto>> Handle(GetAllMassDataQuery request, CancellationToken cancellationToken)
    {
        var items = await _repository.GetAllAsync(request.Skip, request.Take, cancellationToken);
        return _mapper.Map<List<MassDataReadDto>>(items);
    }
}
