From 08cc84a8e882ff2d186132e258f89b8e6b92c087 Mon Sep 17 00:00:00 2001 From: Andrew Welker Date: Fri, 25 Jul 2025 09:28:53 -0500 Subject: [PATCH] fix: apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Devices/ProcessorExtensionDeviceFactory.cs | 4 +++- src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/PepperDash.Essentials.Core/Devices/ProcessorExtensionDeviceFactory.cs b/src/PepperDash.Essentials.Core/Devices/ProcessorExtensionDeviceFactory.cs index 469d18ec..c8528c4a 100644 --- a/src/PepperDash.Essentials.Core/Devices/ProcessorExtensionDeviceFactory.cs +++ b/src/PepperDash.Essentials.Core/Devices/ProcessorExtensionDeviceFactory.cs @@ -21,7 +21,9 @@ namespace PepperDash.Essentials.Core { //Debug.LogMessage(LogEventLevel.Verbose, "Getting Description Attribute from class: '{0}'", typeof(T).FullName); var descriptionAttribute = typeof(T).GetCustomAttributes(typeof(DescriptionAttribute), true) as DescriptionAttribute[]; - string description = descriptionAttribute[0].Description; + string description = descriptionAttribute != null && descriptionAttribute.Length > 0 + ? descriptionAttribute[0].Description + : throw new InvalidOperationException($"No DescriptionAttribute found for type {typeof(T).FullName}"); var snippetAttribute = typeof(T).GetCustomAttributes(typeof(ConfigSnippetAttribute), true) as ConfigSnippetAttribute[]; ProcessorExtensionDeviceFactory.AddFactoryForType(typeName.ToLower(), description, typeof(T), BuildDevice); } diff --git a/src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs b/src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs index 08aa67cf..9f644b04 100644 --- a/src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs +++ b/src/PepperDash.Essentials.Core/Factory/DeviceFactory.cs @@ -92,9 +92,11 @@ namespace PepperDash.Essentials.Core { foreach (var typeName in deviceFactory.TypeNames) { - //Debug.LogMessage(LogEventLevel.Verbose, "Getting Description Attribute from class: '{0}'", typeof(T).FullName); + var descriptionAttribute = deviceFactory.FactoryType.GetCustomAttributes(typeof(DescriptionAttribute), true) as DescriptionAttribute[]; - string description = descriptionAttribute[0].Description; + string description = descriptionAttribute != null && descriptionAttribute.Length > 0 + ? descriptionAttribute[0].Description + : "No description available"; var snippetAttribute = deviceFactory.FactoryType.GetCustomAttributes(typeof(ConfigSnippetAttribute), true) as ConfigSnippetAttribute[]; AddFactoryForType(typeName.ToLower(), description, deviceFactory.FactoryType, deviceFactory.BuildDevice); }