< 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: 4_16869239191
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{
 2694810    public Guid Id { get; set; }
 1330611    public Guid ClassId { get; set; }
 4016812    public int Number { get; set; }
 4047613    public DateOnly Date { get; set; }
 2682814    public Hour StartAt { get; set; }
 2682815    public Hour EndAt { get; set; }
 2744816    public ClassLessonStatus Status { get; set; }
 4025217    public List<ClassLessonAttendance> Attendances { get; set; }
 18
 2870419    private ClassLesson() {}
 20
 1310221    public ClassLesson(
 1310222        Guid classId,
 1310223        int number,
 1310224        DateOnly date,
 1310225        Hour startAt,
 1310226        Hour endAt
 1310227    ) {
 1310228        Id = Guid.CreateVersion7();
 1310229        ClassId = classId;
 1310230        Number = number;
 1310231        Date = date;
 1310232        StartAt = startAt;
 1310233        EndAt = endAt;
 1310234        Status = ClassLessonStatus.Pending;
 1310235    }
 36
 37    public void Finish()
 38    {
 20639        Status = ClassLessonStatus.Finalized;
 20640    }
 41
 42    private string GetSchedule()
 43    {
 1364844        return $"{Date.DayOfWeek.ToString().ToEnum<Day>().GetDescription()} {StartAt.GetDescription()}-{EndAt.GetDescrip
 45    }
 46
 47    private decimal GetFrequency()
 48    {
 1364849        var total = Attendances.Count;
 2729650        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    {
 1364857        return new()
 1364858        {
 1364859            Id = Id,
 1364860            Number = Number,
 1364861            Date = Date,
 1364862            Status = Status,
 1364863            Schedule = GetSchedule(),
 1364864            Frequency = GetFrequency(),
 1364865        };
 66    }
 67}