using ErsatzTV.Core.Api.Channels; using ErsatzTV.Core.Domain; using ErsatzTV.Core.Interfaces.Repositories; using static ErsatzTV.Application.Channels.Mapper; namespace ErsatzTV.Application.Channels; public class GetAllChannelsForApiHandler : IRequestHandler> { private readonly IChannelRepository _channelRepository; public GetAllChannelsForApiHandler(IChannelRepository channelRepository) => _channelRepository = channelRepository; public async Task> Handle( GetAllChannelsForApi request, CancellationToken cancellationToken) { IEnumerable channels = Optional(await _channelRepository.GetAll()).Flatten(); return channels.Map(ProjectToResponseModel).ToList(); } }