< Summary

Information
Class: KT.Modules.Alarm.Core.Application.SendRequestService
Assembly: KT.Modules.Alarm
File(s): G:\NetProjects\KeepTrack\src\Modules\KT.Modules.Alarm\Core\Application\SendRequestService.cs
Line coverage
100%
Covered lines: 11
Uncovered lines: 0
Coverable lines: 11
Total lines: 25
Line coverage: 100%
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%
SendAsync()100%66100%

File(s)

G:\NetProjects\KeepTrack\src\Modules\KT.Modules.Alarm\Core\Application\SendRequestService.cs

#LineLine coverage
 1using KT.Modules.Alarm.Core.Domain;
 2using KT.Modules.Alarm.Core.Domain.Ports;
 3using KT.Modules.Alarm.Presentation.Contracts;
 4
 5namespace KT.Modules.Alarm.Core.Application
 6{
 47    internal class SendRequestService(IRequestRepository requestRepository, IConnectionRepository connectionRepository) 
 8    {
 9        public async Task SendAsync(string userSender, string receivingUser)
 410        {
 411            if (receivingUser.Equals(userSender))
 112                throw new InvalidOperationException("You can't send an application to yourself.");
 13            // Verificar si ya hay una solicitud pendiente entre los dos usuarios
 314            if (await requestRepository.ExistsPendingRequestAsync(userSender, receivingUser))
 115                throw new InvalidOperationException("There is already a pending request between the two users.");
 16            // verificar si ya hay una conexion entre los dos usuarios
 217            if (await connectionRepository.ExistsConnectionAsync(userSender, receivingUser))
 118                throw new InvalidOperationException("There is already a connection between the two users.");
 19
 20            // Guardar la solicitud
 121            var userRequest = new UserRequest(userSender, receivingUser);
 122            await requestRepository.SaveRequestAsync(userRequest);
 123        }
 24    }
 25}