Convert CustomData to dictionary

pull/15608/head
Enis Necipoglu 3 years ago
parent 34d6fa1a7a
commit 4a8f2fdae1

@ -1,4 +1,6 @@
using System.Collections.Generic;
using JetBrains.Annotations;
using Volo.Abp.Data;
using Volo.Abp.UI.Navigation;
namespace Volo.Abp.UI.Navigation;
@ -31,10 +33,9 @@ public class ApplicationMenu : IHasMenuItems
/// <summary>
/// Can be used to store a custom object related to this menu.
/// TODO: Convert to dictionary!
/// </summary>
[CanBeNull]
public object CustomData { get; set; }
[NotNull]
public Dictionary<string, object> CustomData { get; } = new();
public ApplicationMenu(
[NotNull] string name,
@ -59,6 +60,16 @@ public class ApplicationMenu : IHasMenuItems
return this;
}
/// <summary>
/// Adds a custom data item to <see cref="CustomData"/> with given key &amp; value.
/// </summary>
/// <returns>This <see cref="ApplicationMenu"/> itself.</returns>
public ApplicationMenu WithCustomData(string key, object value)
{
CustomData[key] = value;
return this;
}
public override string ToString()
{
return $"[ApplicationMenu] Name = {Name}";

@ -79,7 +79,8 @@ public class ApplicationMenuItem : IHasMenuItems, IHasSimpleStateCheckers<Applic
/// <summary>
/// Can be used to store a custom object related to this menu item. Optional.
/// </summary>
public object CustomData { get; set; }
[NotNull]
public Dictionary<string, object> CustomData { get; } = new();
/// <summary>
/// Can be used to render the element with a specific Id for DOM selections.
@ -97,7 +98,6 @@ public class ApplicationMenuItem : IHasMenuItems, IHasSimpleStateCheckers<Applic
string url = null,
string icon = null,
int order = DefaultOrder,
object customData = null,
string target = null,
string elementId = null,
string cssClass = null,
@ -111,7 +111,6 @@ public class ApplicationMenuItem : IHasMenuItems, IHasSimpleStateCheckers<Applic
Url = url;
Icon = icon;
Order = order;
CustomData = customData;
Target = target;
ElementId = elementId ?? GetDefaultElementId();
CssClass = cssClass;
@ -131,6 +130,16 @@ public class ApplicationMenuItem : IHasMenuItems, IHasSimpleStateCheckers<Applic
return this;
}
/// <summary>
/// Adds a custom data item to <see cref="CustomData"/> with given key &amp; value.
/// </summary>
/// <returns>This <see cref="ApplicationMenuItem"/> itself.</returns>
public ApplicationMenuItem WithCustomData(string key, object value)
{
CustomData[key] = value;
return this;
}
private string GetDefaultElementId()
{
return "MenuItem_" + Name;

@ -58,7 +58,6 @@ public class CmsKitPublicMenuContributor : IMenuContributor
menuItem.Url,
menuItem.Icon,
menuItem.Order,
customData: null,
menuItem.Target,
menuItem.ElementId,
menuItem.CssClass

Loading…
Cancel
Save