< 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: 21_17346963026
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{
 2639410    public Guid Id { get; set; }
 1301211    public Guid ClassId { get; set; }
 3929812    public int Number { get; set; }
 3966213    public DateOnly Date { get; set; }
 2627414    public Hour StartAt { get; set; }
 2627415    public Hour EndAt { get; set; }
 2689816    public ClassLessonStatus Status { get; set; }
 3935217    public List<ClassLessonAttendance> Attendances { get; set; }
 18
 2818419    private ClassLesson() {}
 20
 1280821    public ClassLesson(
 1280822        Guid classId,
 1280823        int number,
 1280824        DateOnly date,
 1280825        Hour startAt,
 1280826        Hour endAt
 1280827    ) {
 1280828        Id = Guid.CreateVersion7();
 1280829        ClassId = classId;
 1280830        Number = number;
 1280831        Date = date;
 1280832        StartAt = startAt;
 1280833        EndAt = endAt;
 1280834        Status = ClassLessonStatus.Pending;
 1280835    }
 36
 37    public void Finish()
 38    {
 20639        Status = ClassLessonStatus.Finalized;
 20640    }
 41
 42    private string GetSchedule()
 43    {
 1338844        return $"{Date.DayOfWeek.ToString().ToEnum<Day>().GetDescription()} {StartAt.GetDescription()}-{EndAt.GetDescrip
 45    }
 46
 47    private decimal GetFrequency()
 48    {
 1338849        var total = Attendances.Count;
 2677650        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    {
 1338857        return new()
 1338858        {
 1338859            Id = Id,
 1338860            Number = Number,
 1338861            Date = Date,
 1338862            Status = Status,
 1338863            Schedule = GetSchedule(),
 1338864            Frequency = GetFrequency(),
 1338865        };
 66    }
 67}