< Summary - Syki

Information
Class: Syki.Back.Features.Academic.CreateCourseOffering.CourseOffering
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/CreateCourseOffering/CourseOffering.cs
Tag: 21_17346963026
Line coverage
100%
Covered lines: 45
Uncovered lines: 0
Coverable lines: 45
Total lines: 73
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
Branch coverage: 100%
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_InstitutionId()100%11100%
get_CampusId()100%11100%
get_Campus()100%11100%
get_CourseId()100%11100%
get_Course()100%11100%
get_CourseCurriculumId()100%11100%
get_CourseCurriculum()100%11100%
get_Period()100%11100%
get_Shift()100%11100%
.ctor()100%11100%
.ctor(...)100%11100%
GetCurrentPeriodNumber(...)100%66100%
ToOut()100%11100%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/CreateCourseOffering/CourseOffering.cs

#LineLine coverage
 1using Syki.Back.Features.Academic.CreateCourse;
 2using Syki.Back.Features.Academic.CreateCampus;
 3using Syki.Back.Features.Academic.CreateCourseCurriculum;
 4
 5namespace Syki.Back.Features.Academic.CreateCourseOffering;
 6
 7/// <summary>
 8/// Oferta de Curso
 9/// <br/> <br/>
 10/// Ao início de cada Período Acadêmico, uma Instituição pode ofertar determinado Curso.
 11/// </summary>
 12public class CourseOffering
 13{
 153614    public Guid Id { get; set; }
 51215    public Guid InstitutionId { get; set; }
 51216    public Guid CampusId { get; set; }
 51817    public Campus Campus { get; set; }
 51218    public Guid CourseId { get; set; }
 52619    public Course Course { get; set; }
 102820    public Guid CourseCurriculumId { get; set; }
 51821    public CourseCurriculum CourseCurriculum { get; set; }
 132822    public string Period { get; set; }
 102823    public Shift Shift { get; set; }
 24
 123225    public CourseOffering() {}
 26
 51227    public CourseOffering(
 51228        Guid institutionId,
 51229        Guid campusId,
 51230        Guid courseId,
 51231        Guid courseCurriculumId,
 51232        string period,
 51233        Shift shift
 51234    ) {
 51235        Id = Guid.CreateVersion7();
 51236        InstitutionId = institutionId;
 51237        CampusId = campusId;
 51238        CourseId = courseId;
 51239        CourseCurriculumId = courseCurriculumId;
 51240        Period = period;
 51241        Shift = shift;
 51242    }
 43
 44    public byte GetCurrentPeriodNumber(string academicPeriodId)
 45    {
 10046        var currentYear = academicPeriodId.Split(".").First().ToInt();
 10047        var currentNumber = academicPeriodId.Split(".").Last().ToInt();
 10048        var startYear = Period.Split(".").First().ToInt();
 10049        var startNumber = Period.Split(".").Last().ToInt();
 50
 11451        if (currentYear == startYear) return (byte)(currentNumber - startNumber + 1);
 52
 12653        if (currentNumber == startNumber) return (byte)((currentYear - startYear) * 2 + 1);
 54
 7655        if (currentNumber < startNumber) return (byte)((currentYear - startYear) * 2);
 56
 1657        return (byte)((currentYear - startYear) * 2 + 2);
 58    }
 59
 60    public CourseOfferingOut ToOut()
 61    {
 51462        return new()
 51463        {
 51464            Id = Id,
 51465            Campus = Campus.Name,
 51466            Course = Course.Name,
 51467            CourseCurriculumId = CourseCurriculumId,
 51468            CourseCurriculum = CourseCurriculum.Name,
 51469            Period = Period,
 51470            Shift = Shift,
 51471        };
 72    }
 73}