< Summary - Syki

Information
Class: Syki.Back.Features.Teacher.CreateClassActivity.CreateNewClassActivityNotificationCommandHandler
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Teacher/CreateClassActivity/CreateNewClassActivityNotificationCommand.cs
Tag: 4_16869239191
Line coverage
100%
Covered lines: 21
Uncovered lines: 0
Coverable lines: 21
Total lines: 44
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Handle()100%22100%

File(s)

/home/runner/work/syki/syki/Back/Features/Teacher/CreateClassActivity/CreateNewClassActivityNotificationCommand.cs

#LineLine coverage
 1using Syki.Back.Features.Academic.CreateNotification;
 2
 3namespace Syki.Back.Features.Teacher.CreateClassActivity;
 4
 5[CommandDescription("Criar notificação de nova atividade")]
 6public record CreateNewClassActivityNotificationCommand(Guid ClassActivityId) : ICommand;
 7
 1448public class CreateNewClassActivityNotificationCommandHandler(SykiDbContext ctx) : ICommandHandler<CreateNewClassActivit
 9{
 10    public async Task Handle(CommandId commandId, CreateNewClassActivityNotificationCommand command)
 11    {
 14412        var activity = await ctx.ClassActivities
 14413            .Where(x => x.Id == command.ClassActivityId).Select(x => new { x.ClassId, x.Title }).FirstAsync();
 14
 14415        var @class = await ctx.Classes.AsNoTracking()
 14416            .Include(x => x.Discipline)
 14417            .FirstAsync(x => x.Id == activity.ClassId);
 18
 14419        var students = await ctx.ClassesStudents
 14420            .Where(x => x.ClassId == @class.Id)
 14421            .Select(x => new { Id = x.SykiStudentId })
 14422            .ToListAsync();
 23
 14424        var notification = new Notification(
 14425            @class.InstitutionId,
 14426            "Nova atividade",
 14427            $"{@class.Discipline.Name}: {activity.Title}",
 14428            UsersGroup.Students,
 14429            false
 14430        );
 14431        ctx.Add(notification);
 32
 33        // var batch = CommandBatch.New(@class.InstitutionId, CommandBatchType.SendNewClassActivityEmailCommandsBatch, s
 34        // ctx.Add(batch);
 42835        foreach (var student in students)
 36        {
 7037            ctx.Add(new UserNotification(student.Id, notification.Id));
 38            // ctx.AddCommand(@class.InstitutionId, new SendNewClassActivityEmailCommand(student.Id, notification.Id), p
 39        }
 40
 41        // var nexCommand = ctx.AddCommand(@class.InstitutionId, new NotifyTeacherNewClassActivityEmailsSendedCommand(@c
 42        // batch.ContinueWith(nexCommand);
 14443    }
 44}