AddFirewallUseCase.cs 664 B

123456789101112131415161718192021222324
  1. using RackPeek.Domain.Helpers;
  2. using RackPeek.Domain.Resources.Hardware.Models;
  3. namespace RackPeek.Domain.Resources.Hardware.Firewalls;
  4. public class AddFirewallUseCase(IHardwareRepository repository) : IUseCase
  5. {
  6. public async Task ExecuteAsync(string name)
  7. {
  8. ThrowIfInvalid.ResourceName(name);
  9. // basic guard rails
  10. var existing = await repository.GetByNameAsync(name);
  11. if (existing != null)
  12. throw new NotFoundException($"Firewall '{name}' already exists.");
  13. var firewallResource = new Firewall
  14. {
  15. Name = name
  16. };
  17. await repository.AddAsync(firewallResource);
  18. }
  19. }