< Summary - Syki

Information
Class: Syki.Back.Features.Campi.CreateCampus.CreateCampusService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Campi/CreateCampus/CreateCampusService.cs
Tag: 56_26538939494
Line coverage
100%
Covered lines: 16
Uncovered lines: 0
Coverable lines: 16
Total lines: 34
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/Campi/CreateCampus/CreateCampusService.cs

#LineLine coverage
 1using Syki.Back.Domain.Campi;
 2
 3namespace Syki.Back.Features.Campi.CreateCampus;
 4
 365public class CreateCampusService(SykiDbContext ctx) : ISykiService
 6{
 7    private class Validator : AbstractValidator<CreateCampusIn>
 8    {
 29        public Validator()
 10        {
 211            RuleFor(x => x.Name).NotEmpty().WithError(InvalidCampusName.I);
 212            RuleFor(x => x.Name).MaximumLength(50).WithError(InvalidCampusName.I);
 13
 214            RuleFor(x => x.State).NotNull().WithError(InvalidBrazilState.I);
 215            RuleFor(x => x.State).IsInEnum().WithError(InvalidBrazilState.I);
 16
 217            RuleFor(x => x.City).NotEmpty().WithError(InvalidCampusCity.I);
 218            RuleFor(x => x.City).MaximumLength(50).WithError(InvalidCampusCity.I);
 19
 220            RuleFor(x => x.Capacity).GreaterThan(0).WithError(InvalidCampusCapacity.I);
 221        }
 22    }
 223    private static readonly Validator V = new();
 24
 25    public async Task<OneOf<CreateCampusOut, SykiError>> Create(CreateCampusIn data)
 26    {
 4827        if (V.Run(data, out var error)) return error;
 28
 2429        var campus = new Campus(ctx.RequestUser.InstitutionId, data.Name, data.State!.Value, data.City, data.Capacity);
 2430        await ctx.SaveChangesAsync(campus);
 31
 2432        return new CreateCampusOut { Id = campus.Id };
 3633    }
 34}