< Summary - Syki

Information
Class: Syki.Back.Features.Teacher.CreateClassActivity.ClassActivity
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Teacher/CreateClassActivity/ClassActivity.cs
Tag: 4_16869239191
Line coverage
98%
Covered lines: 74
Uncovered lines: 1
Coverable lines: 75
Total lines: 122
Line coverage: 98.6%
Branch coverage
64%
Covered branches: 9
Total branches: 14
Branch coverage: 64.2%
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_Note()100%11100%
get_Title()100%11100%
get_Description()100%11100%
get_Type()100%11100%
get_Status()100%11100%
get_Weight()100%11100%
get_CreatedAt()100%11100%
get_DueDate()100%11100%
get_DueHour()100%11100%
get_Works()100%11100%
.ctor()100%11100%
.ctor(...)100%11100%
New(...)100%44100%
ToListOut()50%4493.75%
ToOut()50%66100%
ToCreateOut()100%11100%

File(s)

/home/runner/work/syki/syki/Back/Features/Teacher/CreateClassActivity/ClassActivity.cs

#LineLine coverage
 1using Syki.Back.Features.Student.CreateClassActivityWork;
 2
 3namespace Syki.Back.Features.Teacher.CreateClassActivity;
 4
 5/// <summary>
 6/// Atividade vinculada à uma Turma
 7/// </summary>
 8public class ClassActivity : Entity
 9{
 93410    public Guid Id { get; set; }
 61011    public Guid ClassId { get; set; }
 111412    public ClassNoteType Note { get; set; }
 13
 34214    public string Title { get; set; }
 34215    public string Description { get; set; }
 34216    public ClassActivityType Type { get; set; }
 617    public ClassActivityStatus Status { get; set; }
 18
 19    /// <summary>
 20    /// Peso no intervalo: 0 ≤ Weight ≤ 100
 21    /// </summary>
 94222    public int Weight { get; set; }
 23
 34224    public DateTime CreatedAt { get; set; }
 34225    public DateOnly DueDate { get; set; }
 34226    public Hour DueHour { get; set; }
 27
 40828    public List<ClassActivityWork> Works { get; set; }
 29
 68030    private ClassActivity() {}
 31
 31832    private ClassActivity(
 31833        Guid classId,
 31834        ClassNoteType note,
 31835        string title,
 31836        string description,
 31837        ClassActivityType type,
 31838        int weight,
 31839        DateOnly dueDate,
 31840        Hour dueHour,
 31841        List<Guid> students
 31842    ) {
 31843        Id = Guid.CreateVersion7();
 31844        ClassId = classId;
 31845        Note = note;
 31846        Title = title;
 31847        Description = description;
 31848        Type = type;
 31849        Weight = weight;
 31850        CreatedAt = DateTime.UtcNow;
 31851        DueDate = dueDate;
 31852        DueHour = dueHour;
 53
 38854        Works = students.ConvertAll(x => new ClassActivityWork(Id, x));
 55
 31856        AddDomainEvent(new ClassActivityCreatedDomainEvent(Id));
 31857    }
 58
 59    public static OneOf<ClassActivity, SykiError> New(
 60        Guid classId,
 61        ClassNoteType note,
 62        string title,
 63        string description,
 64        ClassActivityType type,
 65        int weight,
 66        DateOnly dueDate,
 67        Hour dueHour,
 68        List<Guid> students
 69    ) {
 34270        if (weight < 0 || weight > 100) return new InvalidClassActivityWeight();
 71
 31872        return new ClassActivity(classId, note, title, description, type, weight, dueDate, dueHour, students);
 73    }
 74
 75    public TeacherClassActivityOut ToListOut()
 76    {
 1277        return new()
 1278        {
 1279            Id = Id,
 1280            ClassId = ClassId,
 1281            Note = Note,
 1282            Title = Title,
 1283            Description = Description,
 1284            Type = Type,
 1285            Weight = Weight,
 1286            CreatedAt = CreatedAt,
 1287            DueDate = DueDate,
 1288            DueHour = DueHour,
 089            DeliveredWorks = Works != null ? Works.Count(w => w.Status.IsIn(ClassActivityWorkStatus.Delivered, ClassActi
 1290            TotalWorks = Works != null ? Works.Count : 0,
 1291            Works = [],
 1292        };
 93    }
 94
 95    public TeacherClassActivityOut ToOut()
 96    {
 697        return new()
 698        {
 699            Id = Id,
 6100            ClassId = ClassId,
 6101            Note = Note,
 6102            Title = Title,
 6103            Description = Description,
 6104            Type = Type,
 6105            Weight = Weight,
 6106            CreatedAt = CreatedAt,
 6107            DueDate = DueDate,
 6108            DueHour = DueHour,
 4109            DeliveredWorks = Works != null ? Works.Count(w => w.Status.IsIn(ClassActivityWorkStatus.Delivered, ClassActi
 6110            TotalWorks = Works != null ? Works.Count : 0,
 4111            Works = Works != null ? Works.Select(w => w.ToOut()).OrderBy(x => x.StudentName).ToList() : [],
 6112        };
 113    }
 114
 115    public CreateClassActivityOut ToCreateOut()
 116    {
 144117        return new()
 144118        {
 144119            Id = Id,
 144120        };
 121    }
 122}