using System; using System.Collections.Generic; using Kreta.Ellenorzo.Domain.VN.Interfaces; using Kreta.Ellenorzo.Domain.VN.Logic; namespace Kreta.Ellenorzo.Domain.VN.UniqueIdentifier { [Serializable] public class AdatszotarUid : IReadonlyUidRaw, IEqualityComparer { public AdatszotarUid(int id, string nev) { Id = id; Nev = nev; UidRaw = UidLogic.Concat(id, nev); } public AdatszotarUid(string uidRaw) { var compositeKeyElements = UidLogic.GetCompositeKeyElements(uidRaw); Id = int.TryParse(compositeKeyElements[0], out int result) ? result : 0; //HACK DevKornél: Lehetnek kivételek Nev = compositeKeyElements[1]; UidRaw = uidRaw; } public int Id { get; private set; } public string Nev { get; private set; } public string UidRaw { get; private set; } public bool Equals(AdatszotarUid x, AdatszotarUid y) => x == y || x.UidRaw == y.UidRaw; public int GetHashCode(AdatszotarUid obj) => obj.UidRaw.GetHashCode(); } }