UpdateRouterUseCase.cs 904 B

1234567891011121314151617181920212223242526272829303132
  1. using RackPeek.Domain.Helpers;
  2. using RackPeek.Domain.Resources.Hardware.Models;
  3. namespace RackPeek.Domain.Resources.Hardware.Routers;
  4. public class UpdateRouterUseCase(IHardwareRepository repository) : IUseCase
  5. {
  6. public async Task ExecuteAsync(
  7. string name,
  8. string? model = null,
  9. bool? managed = null,
  10. bool? poe = null
  11. )
  12. {
  13. ThrowIfInvalid.ResourceName(name);
  14. var routerResource = await repository.GetByNameAsync(name) as Router;
  15. if (routerResource == null)
  16. throw new NotFoundException($"Router '{name}' not found.");
  17. if (!string.IsNullOrWhiteSpace(model))
  18. routerResource.Model = model;
  19. if (managed.HasValue)
  20. routerResource.Managed = managed.Value;
  21. if (poe.HasValue)
  22. routerResource.Poe = poe.Value;
  23. await repository.UpdateAsync(routerResource);
  24. }
  25. }