UpdateRouterUseCase.cs 837 B

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