< Summary - Syki

Information
Class: Syki.Back.Commands.Domain.Classes.Class
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Domain/Classes/Class.cs
Tag: 97_27801654829
Line coverage
0%
Covered lines: 0
Uncovered lines: 47
Coverable lines: 47
Total lines: 74
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Id()100%210%
get_InstitutionId()100%210%
get_DisciplineId()100%210%
get_Discipline()100%210%
get_PeriodId()100%210%
get_Period()100%210%
get_Vacancies()100%210%
get_Status()100%210%
get_Workload()100%210%
get_CampusId()100%210%
get_TeacherId()100%210%
get_Teacher()100%210%
get_Schedules()100%210%
get_Lessons()100%210%
get_Students()100%210%
.ctor()100%210%
.ctor(...)100%210%
CreateLessons()0%4260%

File(s)

/home/runner/work/syki/syki/Back/Domain/Classes/Class.cs

#LineLine coverage
 1using Syki.Back.Domain.Periods;
 2using Syki.Back.Domain.Teachers;
 3using Syki.Back.Domain.Students;
 4using Syki.Back.Domain.Disciplines;
 5
 6namespace Syki.Back.Commands.Domain.Classes;
 7
 8/// <summary>
 9/// Turma
 10/// </summary>
 11public class Class
 12{
 013    public int Id { get; set; }
 014    public int InstitutionId { get; set; }
 015    public int DisciplineId { get; set; }
 016    public Discipline Discipline { get; set; }
 017    public int PeriodId { get; set; }
 018    public AcademicPeriod Period { get; set; }
 019    public int Vacancies { get; set; }
 020    public ClassStatus Status { get; set; }
 021    public int Workload { get; set; }
 22
 023    public int? CampusId { get; set; }
 024    public int? TeacherId { get; set; }
 025    public SykiTeacher Teacher { get; set; }
 26
 027    public List<Schedule> Schedules { get; set; }
 028    public List<ClassLesson> Lessons { get; set; }
 029    public List<SykiStudent> Students { get; set; }
 30
 031    private Class() {}
 32
 033    public Class(
 034        int institutionId,
 035        int disciplineId,
 036        int? campusId,
 037        int? teacherId,
 038        AcademicPeriod period,
 039        int vacancies,
 040        List<Schedule> schedules
 041    ) {
 042        InstitutionId = institutionId;
 043        DisciplineId = disciplineId;
 044        CampusId = campusId;
 045        TeacherId = teacherId;
 046        Period = period;
 047        Vacancies = vacancies;
 048        Status = ClassStatus.OnPreEnrollment;
 049        Schedules = schedules;
 050        Lessons = [];
 051        Students = [];
 052    }
 53
 54    public void CreateLessons()
 55    {
 056        var schedules = Schedules.OrderBy(x => x.Day).ThenBy(x => x.Start).ToList();
 57
 058        var number = 1;
 059        var current = Period.StartAt;
 060        while (current < Period.EndAt)
 61        {
 062            foreach (var schedule in schedules)
 63            {
 064                if (current.DayOfWeek.Is(schedule.Day))
 65                {
 066                    Lessons.Add(new(this, number, current, schedule.Start, schedule.End));
 067                    Workload += schedule.GetDiff();
 068                    number++;
 69                }
 70            }
 071            current = current.AddDays(1);
 72        }
 073    }
 74}