< Summary - Syki

Information
Class: Syki.Back.Features.Academic.CreateEnrollmentPeriod.CreateEnrollmentPeriodService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/CreateEnrollmentPeriod/CreateEnrollmentPeriodService.cs
Tag: 4_16869239191
Line coverage
86%
Covered lines: 13
Uncovered lines: 2
Coverable lines: 15
Total lines: 30
Line coverage: 86.6%
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
.ctor(...)100%11100%
Create()100%66100%
CreateWithThrowOnError()100%210%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/CreateEnrollmentPeriod/CreateEnrollmentPeriodService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Academic.CreateEnrollmentPeriod;
 2
 1443public class CreateEnrollmentPeriodService(SykiDbContext ctx, HybridCache cache) : IAcademicService
 4{
 5    public async Task<OneOf<EnrollmentPeriodOut, SykiError>> Create(Guid institutionId, CreateEnrollmentPeriodIn data)
 6    {
 1447        var academicPeriodExists = await ctx.AcademicPeriodExists(institutionId, data.Id);
 1468        if (!academicPeriodExists) return new AcademicPeriodNotFound();
 9
 14210        var enrollmentPeriodExists = await ctx.EnrollmentPeriods.AnyAsync(x => x.InstitutionId == institutionId && x.Id 
 14411        if (enrollmentPeriodExists) return new EnrollmentPeriodAlreadyExists();
 12
 14013        var result = EnrollmentPeriod.New(data.Id, institutionId, data.StartAt, data.EndAt);
 14
 14415        if (result.IsError) return result.Error;
 16
 13617        var period = result.Success;
 13618        ctx.Add(period);
 13619        await ctx.SaveChangesAsync();
 20
 13621        await cache.RemoveAsync($"enrollmentPeriods:{institutionId}");
 22
 13623        return period.ToOut();
 14424    }
 25
 26    public async Task CreateWithThrowOnError(Guid institutionId, CreateEnrollmentPeriodIn data)
 27    {
 028        (await Create(institutionId, data)).ThrowOnError();
 029    }
 30}