< Summary - Syki

Information
Class: Syki.Back.Features.Academic.CreateClass.ClassLesson
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/CreateClass/ClassLesson.cs
Tag: 39_20533427501
Line coverage
95%
Covered lines: 38
Uncovered lines: 2
Coverable lines: 40
Total lines: 67
Line coverage: 95%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Id()100%11100%
get_ClassId()100%11100%
get_Number()100%11100%
get_Date()100%11100%
get_StartAt()100%11100%
get_EndAt()100%11100%
get_Status()100%11100%
get_Attendances()100%11100%
.ctor()100%11100%
.ctor(...)100%11100%
Finish()100%11100%
GetSchedule()100%11100%
GetFrequency()50%3250%
ToOut()100%11100%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/CreateClass/ClassLesson.cs

#LineLine coverage
 1using Syki.Back.Features.Teacher.CreateLessonAttendance;
 2
 3namespace Syki.Back.Features.Academic.CreateClass;
 4
 5/// <summary>
 6/// Aula
 7/// </summary>
 8public class ClassLesson
 9{
 2625810    public Guid Id { get; set; }
 1296211    public Guid ClassId { get; set; }
 3907612    public int Number { get; set; }
 3944013    public DateOnly Date { get; set; }
 2613814    public Hour StartAt { get; set; }
 2613815    public Hour EndAt { get; set; }
 2673216    public ClassLessonStatus Status { get; set; }
 3915417    public List<ClassLessonAttendance> Attendances { get; set; }
 18
 2801219    private ClassLesson() {}
 20
 1275821    public ClassLesson(
 1275822        Guid classId,
 1275823        int number,
 1275824        DateOnly date,
 1275825        Hour startAt,
 1275826        Hour endAt
 1275827    ) {
 1275828        Id = Guid.CreateVersion7();
 1275829        ClassId = classId;
 1275830        Number = number;
 1275831        Date = date;
 1275832        StartAt = startAt;
 1275833        EndAt = endAt;
 1275834        Status = ClassLessonStatus.Pending;
 1275835    }
 36
 37    public void Finish()
 38    {
 20639        Status = ClassLessonStatus.Finalized;
 20640    }
 41
 42    private string GetSchedule()
 43    {
 1330244        return $"{Date.DayOfWeek.ToString().ToEnum<Day>().GetDescription()} {StartAt.GetDescription()}-{EndAt.GetDescrip
 45    }
 46
 47    private decimal GetFrequency()
 48    {
 1330249        var total = Attendances.Count;
 2660450        if (total == 0) return 0.00M;
 051        var presences = Attendances.Count(x => x.Present);
 052        return 100M*(1M * presences / (1M * total));
 53    }
 54
 55    public ClassLessonOut ToOut()
 56    {
 1330257        return new()
 1330258        {
 1330259            Id = Id,
 1330260            Number = Number,
 1330261            Date = Date,
 1330262            Status = Status,
 1330263            Schedule = GetSchedule(),
 1330264            Frequency = GetFrequency(),
 1330265        };
 66    }
 67}