< Summary - Syki

Information
Class: Syki.Back.Features.Academic.CreateCampus.CreateCampusService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/CreateCampus/CreateCampusService.cs
Tag: 21_17346963026
Line coverage
100%
Covered lines: 16
Uncovered lines: 0
Coverable lines: 16
Total lines: 32
Line coverage: 100%
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%
.ctor()100%11100%
.cctor()100%11100%
Create()100%22100%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/CreateCampus/CreateCampusService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Academic.CreateCampus;
 2
 3683public class CreateCampusService(SykiDbContext ctx) : IAcademicService
 4{
 5    private class Validator : AbstractValidator<CreateCampusIn>
 6    {
 27        public Validator()
 8        {
 29            RuleFor(x => x.Name).NotEmpty().WithError(InvalidCampusName.I);
 210            RuleFor(x => x.Name).MaximumLength(50).WithError(InvalidCampusName.I);
 11
 212            RuleFor(x => x.State).NotNull().WithError(InvalidBrazilState.I);
 213            RuleFor(x => x.State).IsInEnum().WithError(InvalidBrazilState.I);
 14
 215            RuleFor(x => x.City).NotEmpty().WithError(InvalidCampusCity.I);
 216            RuleFor(x => x.City).MaximumLength(50).WithError(InvalidCampusCity.I);
 17
 218            RuleFor(x => x.Capacity).GreaterThan(0).WithError(InvalidCampusCapacity.I);
 219        }
 20    }
 221    private static readonly Validator V = new();
 22
 23    public async Task<OneOf<CreateCampusOut, SykiError>> Create(CreateCampusIn data)
 24    {
 38425        if (V.Run(data, out var error)) return error;
 26
 35227        var campus = new Campus(ctx.InstitutionId, data.Name, data.State!.Value, data.City, data.Capacity);
 35228        await ctx.SaveChangesAsync(campus);
 29
 35230        return campus.ToCreateCampusOut();
 36831    }
 32}