using Umbraco.Cms.Core; using Umbraco.Cms.Core.Models; namespace Umbraco.Extensions; /// /// Extension methods for the PartialViewMacroModel object /// public static class PartialViewMacroModelExtensions { /// /// Attempt to get a Macro parameter from a PartialViewMacroModel and return a default value otherwise /// /// /// /// /// Parameter value if available, the default value that was passed otherwise. public static T? GetParameterValue(this PartialViewMacroModel partialViewMacroModel, string parameterAlias, T defaultValue) { if (partialViewMacroModel.MacroParameters.ContainsKey(parameterAlias) == false || string.IsNullOrEmpty(partialViewMacroModel.MacroParameters[parameterAlias]?.ToString())) { return defaultValue; } Attempt attempt = partialViewMacroModel.MacroParameters[parameterAlias].TryConvertTo(typeof(T)); return attempt.Success ? (T?)attempt.Result : defaultValue; } /// /// Attempt to get a Macro parameter from a PartialViewMacroModel /// /// /// /// Parameter value if available, the default value for the type otherwise. public static T? GetParameterValue(this PartialViewMacroModel partialViewMacroModel, string parameterAlias) => partialViewMacroModel.GetParameterValue(parameterAlias, default(T)); }