UpdateDesktopUseCase.cs 772 B

123456789101112131415161718192021222324252627
  1. using RackPeek.Domain.Helpers;
  2. using RackPeek.Domain.Resources.Hardware.Models;
  3. namespace RackPeek.Domain.Resources.Hardware.Desktops;
  4. public class UpdateDesktopUseCase(IHardwareRepository repository) : IUseCase
  5. {
  6. public async Task ExecuteAsync(
  7. string name,
  8. string? model = null
  9. )
  10. {
  11. // ToDo validate / normalize all inputs
  12. name = Normalize.HardwareName(name);
  13. ThrowIfInvalid.ResourceName(name);
  14. var desktop = await repository.GetByNameAsync(name) as Desktop;
  15. if (desktop == null)
  16. throw new NotFoundException($"Desktop '{name}' not found.");
  17. if (!string.IsNullOrWhiteSpace(model))
  18. desktop.Model = model;
  19. await repository.UpdateAsync(desktop);
  20. }
  21. }