58 lines
2.1 KiB
C#
58 lines
2.1 KiB
C#
using Newtonsoft.Json;
|
|
|
|
namespace Nop.Services.Plugins;
|
|
|
|
/// <summary>
|
|
/// Represents base info of plugin descriptor
|
|
/// </summary>
|
|
public partial class PluginDescriptorBaseInfo : IComparable<PluginDescriptorBaseInfo>
|
|
{
|
|
/// <summary>
|
|
/// Gets or sets the plugin system name
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "SystemName")]
|
|
public virtual string SystemName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Gets or sets the version
|
|
/// </summary>
|
|
[JsonProperty(PropertyName = "Version")]
|
|
public virtual string Version { get; set; }
|
|
|
|
/// <summary>
|
|
/// Compares this instance with a specified PluginDescriptorBaseInfo object
|
|
/// </summary>
|
|
/// <param name="other">The PluginDescriptorBaseInfo to compare with this instance</param>
|
|
/// <returns>An integer that indicates whether this instance precedes, follows, or appears in the same position in the sort order as the specified parameter</returns>
|
|
public int CompareTo(PluginDescriptorBaseInfo other)
|
|
{
|
|
return string.Compare(SystemName, other.SystemName, StringComparison.InvariantCultureIgnoreCase);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Determines whether this instance and another specified PluginDescriptor object have the same SystemName
|
|
/// </summary>
|
|
/// <param name="value">The PluginDescriptor to compare to this instance</param>
|
|
/// <returns>True if the SystemName of the value parameter is the same as the SystemName of this instance; otherwise, false</returns>
|
|
public override bool Equals(object value)
|
|
{
|
|
return SystemName?.Equals((value as PluginDescriptorBaseInfo)?.SystemName) ?? false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Returns the hash code for this plugin descriptor
|
|
/// </summary>
|
|
/// <returns>A 32-bit signed integer hash code</returns>
|
|
public override int GetHashCode()
|
|
{
|
|
return SystemName.GetHashCode();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets a copy of base info of plugin descriptor
|
|
/// </summary>
|
|
[JsonIgnore]
|
|
public virtual PluginDescriptorBaseInfo GetBaseInfoCopy =>
|
|
new()
|
|
{ SystemName = SystemName, Version = Version };
|
|
} |