< Summary - Syki

Information
Class: Syki.Back.Features.Cross.SeedInstitutionData.SeedInstitutionLessonAttendancesCommand
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Cross/SeedInstitutionData/SeedInstitutionLessonAttendancesCommand.cs
Tag: 4_16869239191
Line coverage
0%
Covered lines: 0
Uncovered lines: 1
Coverable lines: 1
Total lines: 33
Line coverage: 0%
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_InstitutionId()100%210%

File(s)

/home/runner/work/syki/syki/Back/Features/Cross/SeedInstitutionData/SeedInstitutionLessonAttendancesCommand.cs

#LineLine coverage
 1using Syki.Back.Features.Teacher.CreateLessonAttendance;
 2
 3namespace Syki.Back.Features.Cross.SeedInstitutionData;
 4
 5[CommandDescription("Realizar seed de chamadas da instituição")]
 06public record SeedInstitutionLessonAttendancesCommand(Guid InstitutionId) : ICommand;
 7
 8public class SeedInstitutionLessonAttendancesCommandHandler(
 9    SykiDbContext ctx,
 10    CreateLessonAttendanceService createLessonAttendanceService) : ICommandHandler<SeedInstitutionLessonAttendancesComma
 11{
 12    public async Task Handle(CommandId commandId, SeedInstitutionLessonAttendancesCommand command)
 13    {
 14        var id = command.InstitutionId;
 15
 16        var classes = await ctx.Classes.AsNoTracking()
 17            .Include(c => c.Lessons)
 18            .Include(c => c.Students)
 19            .Where(c => c.InstitutionId == id)
 20            .ToListAsync();
 21
 22        var random = new Random();
 23        var today = DateTime.UtcNow.ToDateOnly();
 24        foreach (var @class in classes)
 25        {
 26            foreach (var lesson in @class.Lessons.Where(l => l.Date < today))
 27            {
 28                var presentStudents = @class.Students.Select(s => s.Id).PickRandom(random.Next(3, 7)).ToList();
 29                await createLessonAttendanceService.CreateWithThrowOnError(@class.TeacherId!.Value, lesson.Id, new() { P
 30            }
 31        }
 32    }
 33}

Methods/Properties

get_InstitutionId()