UpdateAccessPointUseCase.cs 912 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. ThrowIfInvalid.ResourceName(name);
  13. var ap = await repository.GetByNameAsync(name) as AccessPoint;
  14. if (ap == null)
  15. throw new NotFoundException($"Access point '{name}' not found.");
  16. if (!string.IsNullOrWhiteSpace(model))
  17. {
  18. ThrowIfInvalid.AccessPointModelName(model);
  19. ap.Model = model;
  20. }
  21. if (speed.HasValue)
  22. {
  23. ThrowIfInvalid.NetworkSpeed(speed.Value);
  24. ap.Speed = speed.Value;
  25. }
  26. await repository.UpdateAsync(ap);
  27. }
  28. }