48 lines
1.0 KiB
C#
48 lines
1.0 KiB
C#
using Newtonsoft.Json;
|
|
|
|
namespace isnd.Data.Catalog
|
|
{
|
|
public abstract class Permalink
|
|
{
|
|
public Permalink(string id)
|
|
{
|
|
Type = GetType().Name;
|
|
this.id = id;
|
|
}
|
|
|
|
public Permalink(string id, string type)
|
|
{
|
|
Type = type;
|
|
this.id = id;
|
|
}
|
|
|
|
|
|
[JsonProperty("@type")]
|
|
public virtual string Type { get; set; }
|
|
|
|
|
|
[JsonProperty("@id")]
|
|
public string Id { get => id; }
|
|
protected string id;
|
|
|
|
public string GetId() { return id; }
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (obj!=null)
|
|
{
|
|
if (GetType().IsAssignableFrom(obj.GetType()))
|
|
{
|
|
var rpobj = (Permalink) obj;
|
|
return this.id == rpobj.id;
|
|
}
|
|
}
|
|
return base.Equals(obj);
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
return id.GetHashCode();
|
|
}
|
|
}
|
|
} |