4
0

UpdateAccessPointUseCase.cs 956 B

12345678910111213141516171819202122232425262728293031323334
  1. using RackPeek.Domain.Helpers;
  2. using RackPeek.Domain.Resources.Hardware.Models;
  3. namespace RackPeek.Domain.Resources.Hardware.AccessPoints;
  4. public class UpdateAccessPointUseCase(IHardwareRepository repository) : IUseCase
  5. {
  6. public async Task ExecuteAsync(
  7. string name,
  8. string? model = null,
  9. double? speed = null
  10. )
  11. {
  12. name = Normalize.HardwareName(name);
  13. ThrowIfInvalid.ResourceName(name);
  14. var ap = await repository.GetByNameAsync(name) as AccessPoint;
  15. if (ap == null)
  16. throw new NotFoundException($"Access point '{name}' not found.");
  17. if (!string.IsNullOrWhiteSpace(model))
  18. {
  19. ThrowIfInvalid.AccessPointModelName(model);
  20. ap.Model = model;
  21. }
  22. if (speed.HasValue)
  23. {
  24. ThrowIfInvalid.NetworkSpeed(speed.Value);
  25. ap.Speed = speed.Value;
  26. }
  27. await repository.UpdateAsync(ap);
  28. }
  29. }