< Summary - Syki

Information
Class: Syki.Back.Features.Academic.UpdateEnrollmentPeriod.UpdateEnrollmentPeriodService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/UpdateEnrollmentPeriod/UpdateEnrollmentPeriodService.cs
Tag: 4_16869239191
Line coverage
84%
Covered lines: 11
Uncovered lines: 2
Coverable lines: 13
Total lines: 28
Line coverage: 84.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%
Update()100%66100%
UpdateWithThrowOnError()100%210%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/UpdateEnrollmentPeriod/UpdateEnrollmentPeriodService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Academic.UpdateEnrollmentPeriod;
 2
 1003public class UpdateEnrollmentPeriodService(SykiDbContext ctx, HybridCache cache) : IAcademicService
 4{
 5    public async Task<OneOf<EnrollmentPeriodOut, SykiError>> Update(Guid institutionId, string id, UpdateEnrollmentPerio
 6    {
 1007        var academicPeriodExists = await ctx.AcademicPeriodExists(institutionId, id);
 1028        if (!academicPeriodExists) return new AcademicPeriodNotFound();
 9
 9810        var period = await ctx.EnrollmentPeriods.FirstOrDefaultAsync(x => x.InstitutionId == institutionId && x.Id == id
 10011        if (period == null) return new EnrollmentPeriodNotFound();
 12
 9613        var result = period.Update(data.StartAt, data.EndAt);
 14
 10015        if (result.IsError) return result.Error;
 16
 9217        await ctx.SaveChangesAsync();
 18
 9219        await cache.RemoveAsync($"enrollmentPeriods:{institutionId}");
 20
 9221        return period.ToOut();
 10022    }
 23
 24    public async Task UpdateWithThrowOnError(Guid institutionId, string id, UpdateEnrollmentPeriodIn data)
 25    {
 026        (await Update(institutionId, id, data)).ThrowOnError();
 027    }
 28}