IHardwareRepository.cs 789 B

123456789101112131415161718192021222324252627
  1. namespace RackPeek.Domain.Resources.Hardware;
  2. public interface IHardwareRepository
  3. {
  4. Task<int> GetCountAsync();
  5. Task<Dictionary<string, int>> GetKindCountAsync();
  6. Task<IReadOnlyList<Models.Hardware>> GetAllAsync();
  7. Task AddAsync(Models.Hardware hardware);
  8. Task UpdateAsync(Models.Hardware hardware);
  9. Task DeleteAsync(string name);
  10. Task<Models.Hardware?> GetByNameAsync(string name);
  11. public Task<List<HardwareTree>> GetTreeAsync();
  12. }
  13. public class HardwareTree
  14. {
  15. public required string HardwareName { get; set; }
  16. public required string Kind { get; set; }
  17. public required List<SystemTree> Systems {get; set;}
  18. }
  19. public class SystemTree
  20. {
  21. public required string SystemName { get; set; }
  22. public required List<string> Services {get; set;}
  23. }