using LiteCqrs; using Microsoft.EntityFrameworkCore; using TeleWave.Application.Common.Interfaces; using TeleWave.Application.Common.Models; namespace TeleWave.Application.Broadcast.Bumpers; public sealed class SetBumperTemplateBackgroundCommandHandler(IAppDbContext dbContext) : ICommandHandler { public async Task Handle( SetBumperTemplateBackgroundCommand command, CancellationToken cancellationToken ) { var channel = await dbContext.Channels .Include(c => c.BumperTemplates) .FirstOrDefaultAsync(c => c.Id == command.ChannelId, cancellationToken); if (channel is null) return Result.Failure(ChannelErrors.NotFound); var template = channel.FindBumperTemplate(command.TemplateId); if (template is null) return Result.Failure(ChannelErrors.BumperTemplateNotFound); template.SetBackgroundImage(command.Extension); return Result.Success(); } }