kreta/Kreta.WebApi/Ellenorzo/Kreta.Ellenorzo.Domain/VN/UniqueIdentifier/TantargyUid.cs
2024-03-13 00:33:46 +01:00

38 lines
1 KiB
C#

using System;
using System.Collections.Generic;
using Kreta.Ellenorzo.Domain.VN.Interfaces;
namespace Kreta.Ellenorzo.Domain.VN.UniqueIdentifier
{
[Serializable]
public sealed class TantargyUid : IReadonlyUidRaw, IEqualityComparer<TantargyUid>, IEquatable<TantargyUid>
{
public TantargyUid(int id)
{
Id = id;
UidRaw = id.ToString();
}
public TantargyUid(string uidRaw)
{
// Magatartás, Szorgalom tantárgyak miatt van 0-ás Id
Id = int.TryParse(uidRaw, out int result) ? result : 0;
UidRaw = uidRaw;
}
public TantargyUid()
{
}
public int Id { get; private set; }
public string UidRaw { get; private set; }
public bool Equals(TantargyUid x, TantargyUid y) => x == y || x.UidRaw == y.UidRaw;
public bool Equals(TantargyUid y) => this == y || UidRaw == y.UidRaw;
public int GetHashCode(TantargyUid obj) => obj.UidRaw.GetHashCode();
}
}