using System.Threading; using System.Threading.Tasks; using ErsatzTV.Core.Interfaces.Repositories; using LanguageExt; using MediatR; using static ErsatzTV.Application.Movies.Mapper; namespace ErsatzTV.Application.Movies.Queries { public class GetMovieByIdHandler : IRequestHandler> { private readonly IMovieRepository _movieRepository; public GetMovieByIdHandler(IMovieRepository movieRepository) => _movieRepository = movieRepository; public Task> Handle( GetMovieById request, CancellationToken cancellationToken) => _movieRepository.GetMovie(request.Id).MapT(ProjectToViewModel); } }