< Summary - Syki

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

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_ClassActivityId()100%11100%

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")]
 5766public record CreateNewClassActivityNotificationCommand(Guid ClassActivityId) : ICommand;
 7
 8public class CreateNewClassActivityNotificationCommandHandler(SykiDbContext ctx) : ICommandHandler<CreateNewClassActivit
 9{
 10    public async Task Handle(CommandId commandId, CreateNewClassActivityNotificationCommand command)
 11    {
 12        var activity = await ctx.ClassActivities
 13            .Where(x => x.Id == command.ClassActivityId).Select(x => new { x.ClassId, x.Title }).FirstAsync();
 14
 15        var @class = await ctx.Classes.AsNoTracking()
 16            .Include(x => x.Discipline)
 17            .FirstAsync(x => x.Id == activity.ClassId);
 18
 19        var students = await ctx.ClassesStudents
 20            .Where(x => x.ClassId == @class.Id)
 21            .Select(x => new { Id = x.SykiStudentId })
 22            .ToListAsync();
 23
 24        var notification = new Notification(
 25            @class.InstitutionId,
 26            "Nova atividade",
 27            $"{@class.Discipline.Name}: {activity.Title}",
 28            UsersGroup.Students,
 29            false
 30        );
 31        ctx.Add(notification);
 32
 33        // var batch = CommandBatch.New(@class.InstitutionId, CommandBatchType.SendNewClassActivityEmailCommandsBatch, s
 34        // ctx.Add(batch);
 35        foreach (var student in students)
 36        {
 37            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);
 43    }
 44}

Methods/Properties

get_ClassActivityId()