< Summary - Syki

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

#LineLine coverage
 1using Syki.Back.Features.Academic.CreateClass;
 2
 3namespace Syki.Back.Features.Cross.SeedInstitutionData;
 4
 5[CommandDescription("Realizar seed de turmas da instituição")]
 06public record SeedInstitutionClassesCommand(Guid InstitutionId) : ICommand;
 7
 8public class SeedInstitutionClassesCommandHandler(
 9    SykiDbContext ctx,
 10    CreateClassService createClassService) : ICommandHandler<SeedInstitutionClassesCommand>
 11{
 12    public async Task Handle(CommandId commandId, SeedInstitutionClassesCommand command)
 13    {
 14        var id = command.InstitutionId;
 15        var academicPeriod = $"{DateTime.UtcNow.Year}.1";
 16
 17        var adsCourseCurriculumId = await ctx.CourseCurriculums
 18            .Where(x => x.InstitutionId == id && x.Name.Equals("Grade ADS 1.0"))
 19            .Select(x => x.Id).FirstAsync();
 20        var adsDisciplines = await ctx.CourseCurriculumDisciplines
 21            .Where(x => x.CourseCurriculumId == adsCourseCurriculumId && x.Period == 1)
 22            .Select(x => new { x.DisciplineId })
 23            .ToListAsync();
 24
 25        var teachers = await ctx.Teachers.Where(x => x.InstitutionId == id).Select(x => x.Id).ToListAsync();
 26
 27        for (int i = 0; i < 6; i++)
 28        {
 29            await createClassService.CreateWithThrowOnError(id, new()
 30            {
 31                DisciplineId = adsDisciplines[i].DisciplineId,
 32                TeacherId = teachers.PickRandom(),
 33                Period = academicPeriod,
 34                Vacancies = new List<int>{25, 30, 35}.PickRandom(),
 35                Schedules = [new() { Day = (Day)i, Start = Hour.H19_00, End = Hour.H22_00 }]
 36            });
 37        }
 38
 39        ctx.AddCommand(id, new SeedInstitutionEnrollmentsCommand(id, adsCourseCurriculumId), parentId: commandId);
 40    }
 41}

Methods/Properties

get_InstitutionId()