< Summary - Syki

Information
Class: Syki.Back.Features.Academic.CreateTeacher.CreateTeacherService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/CreateTeacher/CreateTeacherService.cs
Tag: 4_16869239191
Line coverage
84%
Covered lines: 11
Uncovered lines: 2
Coverable lines: 13
Total lines: 30
Line coverage: 84.6%
Branch coverage
100%
Covered branches: 2
Total branches: 2
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%22100%
CreateWithThrowOnError()100%210%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/CreateTeacher/CreateTeacherService.cs

#LineLine coverage
 1using Syki.Back.Features.Cross.CreateUser;
 2
 3namespace Syki.Back.Features.Academic.CreateTeacher;
 4
 2645public class CreateTeacherService(SykiDbContext ctx, CreateUserService service, HybridCache cache) : IAcademicService
 6{
 7    public async Task<OneOf<TeacherOut, SykiError>> Create(Guid institutionId, CreateTeacherIn data)
 8    {
 2649        var userIn = CreateUserIn.NewTeacher(institutionId, data.Name, data.Email);
 26410        var result = await service.Create(userIn);
 11
 26812        if (result.IsError) return result.Error;
 13
 26014        var user = result.Success;
 15
 26016        var teacher = new SykiTeacher(user.Id, institutionId, data.Name);
 26017        ctx.Add(teacher);
 18
 26019        await ctx.SaveChangesAsync();
 20
 26021        await cache.RemoveAsync($"teachers:{institutionId}");
 22
 26023        return teacher.ToOut();
 26424    }
 25
 26    public async Task CreateWithThrowOnError(Guid institutionId, CreateTeacherIn data)
 27    {
 028        (await Create(institutionId, data)).ThrowOnError();
 029    }
 30}