< Summary - Syki

Information
Class: Syki.Back.Features.Academic.UpdateCampus.UpdateCampusService
Assembly: Back
File(s): /home/runner/work/syki/syki/Back/Features/Academic/UpdateCampus/UpdateCampusService.cs
Tag: 21_17346963026
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 36
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
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%
Update()100%44100%

File(s)

/home/runner/work/syki/syki/Back/Features/Academic/UpdateCampus/UpdateCampusService.cs

#LineLine coverage
 1namespace Syki.Back.Features.Academic.UpdateCampus;
 2
 243public class UpdateCampusService(SykiDbContext ctx) : IAcademicService
 4{
 5    private class Validator : AbstractValidator<UpdateCampusIn>
 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<UpdateCampusOut, SykiError>> Update(Guid institutionId, UpdateCampusIn data)
 24    {
 4025        if (V.Run(data, out var error)) return error;
 26
 827        var campus = await ctx.Campi.FirstOrDefaultAsync(x => x.InstitutionId == institutionId && x.Id == data.Id);
 1228        if (campus == null) return CampusNotFound.I;
 29
 430        campus.Update(data.Name, data.State!.Value, data.City, data.Capacity);
 31
 432        await ctx.SaveChangesAsync();
 33
 434        return campus.ToUpdateCampusOut();
 2435    }
 36}